Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.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# 为什么StreamWriter.Write会生成损坏的文件?_C#_.net_File Io_Ms Word_Streamwriter - Fatal编程技术网

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

C# 为什么StreamWriter.Write会生成损坏的文件?,c#,.net,file-io,ms-word,streamwriter,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无法打开此文件,因为缺少

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

using (FileStream fs = new FileStream(filepath, FileMode.Open))
using (StreamWriter sw = new StreamWriter(fs, Encoding.Unicode))
{
     sw.WriteLine("something");
}
这会写入文件,但当我尝试使用MsWord打开文件时,会出现错误

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


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

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


如果您想编写正确的docx文件,请参考以下问题:

不确定您的问题是什么。。。Docx不是文本文件格式-所以在文件中需要其他数据的程序无法处理纯文本是合理的。请澄清您在寻找什么(即“如何使用文本创建docx文件”或“我应该为我的文本文件使用.txt扩展名”或其他内容)。哦。。我也这么怀疑,但我认为可能有一个更容易的方法来解决这个问题。谢谢你的及时回复!:)