如何从字节数组中加载Word文档

6

我有整个MS Word文件本身保存在一个字节数组中。我想以与文件系统上相同的方式加载它,但要尽量减少对Microsoft.Office.Interop.Word的使用,因为在执行.Open(args[])部分时速度非常缓慢。


你想做什么?是要读取文件还是写入文件? - Aravind
我想读取它的文本内容。 - mathinvalidnik
我已经回答了...请查看一下... - Aravind
我应该在哪里检查它? - mathinvalidnik
请看下面的回答,并将您的文件路径放入该代码中...您将得到答案。 - Aravind
3个回答

4

尝试这个....

      byte[] bte = File.ReadAllBytes("E:\\test.doc"); // Put the Reading file
        File.WriteAllBytes(@"E:\\test1.doc", bte); // Same contents you will get in byte[] and that will be save here 

3
它仍然使用文件系统I/O。我相信作者正在寻找一个解决方案,可以将byte[]保留在内存中,而无需将文件写入磁盘? - Adam

2
Interop.Word没有支持的方法来直接处理字节数组,因此没有直接的方法来完成这个任务。但是,您可以使用以下方法来使用临时文件作为可行的解决方案:
// byte[] fileBytes = getFileBytesFromDB();
var tmpFile = Path.GetTempFileName();
File.WriteAllBytes(tmpFile, fileBytes);

Application app = new word.Application();
Document doc = app.Documents.Open(filePath);

// .. do your stuff here ...

doc.Close();
app.Quit();
byte[] newFileBytes = File.ReadAllBytes(tmpFile);
File.Delete(tmpFile);

如需更多信息,请访问我的博客,阅读此文章


我们能否将一个Application对象转换为byte[]数组并保存文件? - Mohan Singh

-2

方法public static byte[] ReadAllBytes( string path )将所有文件信息返回到一个字节数组中。您不必担心流,因为MSDN文档说: "给定文件路径,此方法打开文件,将文件内容读入字节数组,然后关闭文件。"

如果您想要更多信息,请查看此链接


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接