将byte []作为文件打开而不首先将其实际保存为文件

时间:2010-07-07 23:31:59

标签: c# .net ms-access ms-word ms-office

打开在数据库中存储为byte []的Word文件的最佳方法是什么?

我必须将一些文档存储在Access数据库中 - Word文件,2003及更高版本 - 在严格用于CD的应用程序上。不幸的是,他们必须在数据库中,不能存放在文件夹中。我将它们存储为OLE对象,我可以将它们作为byte []读取和写入。

但是,我不知道在Word中重新打开这些文档的最佳方法。现在我正在使用FileStream在某处重新创建文件,然后拍摄System.Diagnostics.Process.Start(filename)以使其打开。这将用于政府计算机,有时可能会有一些时髦的安全规则,所以我不知道这是否是最佳方式。

是否可以打开以前存储为byte []的文件而不使用保存到硬盘驱动器的任何中间文件?我知道他们至少会拥有Word 2003,所以我愿意使用Word互操作。

感谢您的任何意见!

1 个答案:

答案 0 :(得分:6)

我怀疑你是否能够在内存中提供Word文件而不将其保存到至少RAMDisk或类似的东西。

为什么不使用系统临时文件夹或GetTempFile()方法在使用Word打开文件之前将字节数组写入文件,然后在完成后清理临时文件?

  string fullPathToATempFile = System.IO.Path.GetTempFileName();
// or
  string tempDirPath = System.IO.Path.GetTempPath();