为什么StreamWriter.Write会生成损坏的文件?

时间:2014-12-23 07:14:18

标签: c# .net file-io ms-word streamwriter

我有一个简单的代码可以将一些文本写入.docx文件。

using (FileStream fs = new FileStream(filepath, FileMode.Open))
using (StreamWriter sw = new StreamWriter(fs, Encoding.Unicode))
{
     sw.WriteLine("something");
}

这会写入文件,但是当我尝试使用MsWord打开文件时,它会出错

  

microsoft office无法打开此文件,因为某些部分缺失   或无效

但如果我尝试用wordpad或记事本打开同一个文件,它会打开并正确写入文本。为什么会这样?

1 个答案:

答案 0 :(得分:0)

.doc和.docx文件实际上不仅仅是纯文本文件。它们具有相当复杂的文件格式。因此,当您将纯文本放入文件并将其命名为something.docx时,Word将期望格式正确的Word文件。

如果您想撰写正确的docx文件,请参阅此问题:How do I create the .docx document with Microsoft.Office.Interop.Word?