8

我正在尝试获取仍在 Word 中打开的活动 Word 文档的 base64 表示形式,并且在 ReadAllBytes() 中出现以下错误:

该进程无法访问另一个进程正在使用的文件“文件路径”

public string GetEncodedTemplate()
        {
            //Convert a Word document's base64 representation
            string base64 = String.Empty;
            _application.ActiveDocument.Save();

            string docPath = _application.ActiveDocument.FullName;
            byte[] binarydata = File.ReadAllBytes(docPath);
            base64 = System.Convert.ToBase64String(binarydata, 0, binarydata.Length);
            return base64;
        }

我确实知道发生错误是因为指定的文档仍然在 Word 中打开,我的问题是 - 是否仍然有可能在不求助于保存到临时文件的情况下获取文档的 base64 表示?

我正在使用 C# .NET 4.0 和 MS Office 2010

4

1 回答 1

6

您是对的 - Word 锁定了当前文档。为了获取当前文档字节,您需要复制现有文件( File.Copy) 或保存到新文件(Document.SaveAsIPersistFile.Save) 以读取其内容。

于 2012-07-19T14:09:51.940 回答