C# 将字节[]作为文件打开,而不首先实际将其保存为文件

C# 将字节[]作为文件打开,而不首先实际将其保存为文件,c#,.net,ms-access,ms-word,ms-office,C#,.net,Ms Access,Ms Word,Ms Office,打开数据库中存储为字节[]的Word文件的最佳方法是什么 我必须将一些文档存储在Access数据库(Word files,2003及以上)中,存储在一个严格使用CD运行的应用程序上。不幸的是,它们必须在数据库中,不能松散地存储在文件夹中。我将它们存储为OLE对象,我可以像字节[]一样读取和写入它们 然而,我不知道用Word重新打开这些文档的最佳方法。现在我正在使用文件流在某处重新创建文件,然后启动System.Diagnostics.Process.Start(filename)以将其打开。这将

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

我必须将一些文档存储在Access数据库(Word files,2003及以上)中,存储在一个严格使用CD运行的应用程序上。不幸的是,它们必须在数据库中,不能松散地存储在文件夹中。我将它们存储为OLE对象,我可以像字节[]一样读取和写入它们

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

是否可以在不使用任何保存到硬盘驱动器的中间文件的情况下打开以前存储为字节[]的文件?我知道他们至少会有Word2003,所以我愿意使用interop这个词


谢谢你的意见

我怀疑您是否能够在内存中输入Word文件,而不将其保存到至少一个RAMDisk或类似的野生磁盘

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

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

没有其他选择。你做得对。问题:打开的文件是用来编辑的,还是只读的?如果是前者,您的安全顾虑将浪费在用户身上。如果是后者,你真的需要用Word打开它们吗?如果你只是简单地显示Word文档,你可以考虑在光盘上放置一个便携式OpenOffice,修改它以适应这个任务——虽然我不知道这有多少工作。它们是只读的,应该用计算机打开的任何东西打开。doc/docx文件有。我认为,在打开文件的人中,像便携式openoffice那样包含我自己的阅读器是非常不受欢迎的。