【发布时间】:2019-04-01 12:35:10
【问题描述】:
我正在从字符串生成 MemoryStream 并将其传递给另一个方法,该方法将以 .docx 文件的形式将该 Stream 保存在远程位置。
public static MemoryStream GenerateStreamFromString(string s)
{
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(s);
writer.Flush();
stream.Position = 0;
return stream;
}
以上代码用于将字符串转换为 MemoryStream。我传递给上述方法的字符串是通过Globals.ThisAddIn.Application.ActiveDocument.WordOpenXML 行获得的XML。
文件已成功上传到远程位置,但当我下载该文件时,MS Word 会抛出 File is corrupted. Either part of file is missing or invalid 的错误(如下图所示)
我无法确定我生成的流是否错误/损坏,或者我需要执行更多操作以使此.docx 文件有效?
抱歉这个问题,有很多这样的问题,但没有一个比这更有帮助。
【问题讨论】:
-
之后你检查过文件的内容吗?您确定将该字符串保存为 docx 文件并期望它能够正常工作是有效的吗?
-
@JonSkeet 我认为这将是保存 docx 文件的方法。纠正我如果我错了,还有其他方法可以执行此任务吗?
-
"我认为这将是保存 docx 文件的方法。"我会检查这个假设。 (当然,docx 文件通常不仅仅是纯文本 XML 文件。)
-
@JonSkeet 那么,我是否必须临时保存文件并读取该文件并将其传递给流,这是我可以解决此问题的最佳方法吗?
标签: c# interop memorystream word-addins