C# C File.AppendAllText生成损坏的文件

C# C File.AppendAllText生成损坏的文件,c#,C#,我正在尝试使用以下命令将一些行附加到*.doc文件: foreach (var user in usersApproved) File.AppendAllText(Server.MapPath(("..\\Files\\TFFiles\\" + tid + "\\" + file.Type + "\\")) + Path.GetFileName(file.Title), "Document Signed by: " + user.UserName + Environment.NewLin

我正在尝试使用以下命令将一些行附加到*.doc文件:

foreach (var user in usersApproved)
    File.AppendAllText(Server.MapPath(("..\\Files\\TFFiles\\" + tid + "\\" + file.Type + "\\")) + Path.GetFileName(file.Title), "Document Signed by: " + user.UserName + Environment.NewLine);
但它会产生一个损坏的文件

编辑

我用这个答案生成了一个*.docx文件。但是,当我尝试追加行时,我收到一个错误,即…文件被另一个进程使用,因此失败


这台机器是一台服务器,我不想在其中安装Word/Office,因此Office Interop不是一个可行的选项。

我相信您需要的是Document.Add方法。您可以在此处阅读:


如果我没有弄错的话,您正试图将您的文件视为普通文本文件,而.doc是MSWord文档

您所说的损坏是什么意思?我认为不能将.doc文件视为简单的文本文件。您应该使用一些互操作库DOC文件不是纯文本文件,它有特定的格式。所以,你不能只是在它的末尾附加一些文本,然后期望它能工作。Word文档文件是一个二进制文件,而不是纯文本文件。您需要使用其他方式,如Office集成,在其中创建和添加文本。好的,谢谢,我错过了。。。我将尝试使用openxmlFree和opensource:我不想使用microsoft interop,因为我不想在服务器上安装office。您也可以尝试在此处找到WordprocessingDocument:。您可以将其用于.docx文件。我现在不是在工作中测试,看看这是否有效,但你可以试试看它是如何治疗的files@MouseWordprocessingDocument看起来与OpenXMLSDK相关,因此.doc无法工作,只有docx可以与WordprocessingDocument一起工作。