0
오픈 파일의 컨텍스트에서 다음 코드 스 니펫을 작성해야합니다. 이 코드는 현재 열려있는 문서를 데이터베이스에 쓰는 Excel 추가 기능에서 실행해야합니다. 3 행에서 System.IO.File.ReadAllBytes() 오류가 발생하여 문서가 현재 사용 중임을 나타냅니다. 열려있는 문서에서 사용할 수있는 동일한 방법이 있습니까? 그렇지 않다면 해결책은 무엇입니까?"System.IO.File.ReadAllBytes()"또는 다른 방법을 사용하여 열린 파일을 데이터베이스에 복사하는 방법은 무엇입니까?
Foo.DataClasses1DataContext db = new Foo.DataClasses1DataContext();
string ThisDocument = Globals.ThisAddIn.Application.ActiveWorkbook.FullName;
byte[] inputBuffer = System.IO.File.ReadAllBytes(ThisDocument);
Foo.RFP_Document rfpDocument = new Foo.RFP_Document();
rfpDocument.DocumentName = "Some Name";
rfpDocument.DocumentFile = new System.Data.Linq.Binary(inputBuffer);
db.RFP_Documents.InsertOnSubmit(rfpDocument);
db.SubmitChanges();
다음은 VB와 관련된 비슷한 질문에 대한 링크입니다. How do I copy an open file in VB6?
나는 일반적으로 데이터베이스에 전체 파일을 저장하는 것을 피합니다. 특히 파일이 클 경우 특히 그렇습니다. 왜 파일을 특정 폴더에 파일로 저장 한 다음 (데이터베이스에서) 해당 파일 경로를 가리 키지 않습니까? –
나는 일반적으로 그렇게한다. 그러나이 경우 파일이 항상 작을 것입니다. 1MB 미만입니다. 그리고 각 문서의 내용을 검색 할 수 있기를 바랍니다. – hughesdan
나는 여전히 1 메가 바이트가 너무 크다고 주장 할 것이다. Afterall은 UTF8 인코딩으로 약 1.000.000 자 (바이트)입니다. 왜 파일 자체를 검색하지 않는 것이 좋을까요? –