MS Word 文档被标记为仅就绪...但不在文件系统上

MS Word 文档被标记为仅就绪...但不在文件系统上

我需要分析 MS Word 文档中表格中的一长串项目。自然而然地,我认为编写一个简单的 C# 程序来处理所有这些内容会很有用。

我注意到当我使用 Interop 时,它还会在打开时创建备份。这很浪费,因为我只想读取它。

            wordApp = new Microsoft.Office.Interop.Word.Application();
            wordApp.Documents.Open("yada.docx");

好吧,我查看了 MS 网站,瞧,有一个只读标志。

https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.word.documents.open?view=word-pia

自然而然地,我就会用它……

            wordApp = new Microsoft.Office.Interop.Word.Application();
            wordApp.Documents.Open("yada.docx",false, true,false);

哎呀。微软一如既往地打了我的脸。虽然我在扫描文档中的表格后没有更改或保存文档,但现在当我用微软 Word 打开它时,它却突然显示为“只读”

并且不是文件系统属性。它是 doc 文件内部的东西。现在我不知道如何摆脱该设置!

参见下图。如能提供任何帮助,我们将不胜感激!

文件系统不是只读文件

MS Word 提示为只读

答案1

全部,

经过一段时间的破解,我发现两个“Word”实例已经在运行,即使我的分析程序没有运行。它们被埋在任务管理器列表中,没有任何 UI 打开。

它们可能是 C# 程序在开发和调试周期中停止时留下的残留物,留下孤立的 COM 实例在运行。我的错误,我以为我已经杀死了它们。

如果 Word 能够显示类似“Word 的另一个副本以只读模式打开了此文档”之类的内容,那将会很有用。这样我就知道从哪里开始查找了。

此外,由于缺少临时文件(即“~$ada.docx”),因此认为没有在某处打开副本。

我删除了这些副本,现在当我用 Word 打开文档时,它不会显示它是“只读”。我编写的用于扫描文档中的表格的 C# 程序将其以“只读”打开,而不会创建临时备份文件。

现在一切都按预期进行。

相关内容