如何使用“System.IO.File.ReadAllBytes()”或其他方法将打开的文件复制到数据库?

时间:2011-12-30 18:09:06

标签: c# excel office-interop

我需要在打开文件的上下文中使用以下代码片段。此代码需要在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相关的类似问题的链接。 How do I copy an open file in VB6?

1 个答案:

答案 0 :(得分:0)

您可以使用Workbook.SaveCopyAs保存文件的副本,使用此文件并在之后将其删除。