Как скопировать открытый файл в базу данных с помощью «System.IO.File.ReadAllBytes ()» или каким-либо другим способом? - PullRequest
0 голосов
/ 30 декабря 2011

Мне нужно, чтобы следующий фрагмент кода работал в контексте открытого файла.Этот код необходимо запустить в надстройке Excel, чтобы записать текущий открытый документ в базу данных.В строке 3 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. Как скопировать открытый файл в VB6?

1 Ответ

0 голосов
/ 30 декабря 2011

Вы можете просто сохранить копию файла, используя Workbook.SaveCopyAs, использовать эту и затем удалить ее.

...