Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从字节数组加载Word文档_C#_Ms Word_Extract_Office Interop - Fatal编程技术网

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

C# 如何从字节数组加载Word文档,c#,ms-word,extract,office-interop,C#,Ms Word,Extract,Office Interop,我将整个MS Word文件本身保存到一个字节数组中。a希望以在文件系统中加载的方式加载它,但使用的Microsoft.Office.Interop.Word最少,因为它在获取.Open(args[])部分时速度非常慢。试试这个 byte[] bte = File.ReadAllBytes("E:\\test.doc"); // Put the Reading file File.WriteAllBytes(@"E:\\test1.doc", bte); // Same

我将整个MS Word文件本身保存到一个字节数组中。a希望以在文件系统中加载的方式加载它,但使用的Microsoft.Office.Interop.Word最少,因为它在获取
.Open(args[])
部分时速度非常慢。

试试这个

      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 

方法
publicstaticbyte[]ReadAllBytes(
字符串路径
)
将所有文件信息返回到字节数组中。您不必担心流,正如MSDN文档所说: 给定文件路径,此方法打开文件,将文件内容读入字节数组,然后关闭文件


如果您想了解更多信息,请查看由于没有支持字节数组的方法,因此不支持使用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);

如需更多信息,请访问我的博客。

您想做什么。/。。您想读取该文件。。或者写文件???我想读它的文本内容。我已经回答了。。。。检查它…我应该在哪里检查它?看下面我已经回答并将您的文件路径放在代码中…您会得到答案它仍然使用文件系统I/O。我相信作者正在寻找一种解决方案,可以将
byte[]
保留在内存中而不将文件写入磁盘?我们可以将应用程序对象转换为byte[]保存文件的数组?