Office.Interop.Word.Document.Open抛出COMException

时间:2016-11-09 16:32:44

标签: c# hyperlink ms-word office-interop

我已搜索过,但未找到适合我情况的任何解决方案。下面是我的代码的屏幕截图和我得到的错误。我已经尝试过按照其他帖子推荐的管理员身份运行。

最终目标是使用C#以编程方式浏览目录中的文档并替换超链接地址。

该行的错误是:

Microsoft.Office.Interop.Word.Document document = applicationObject.Documents.Open(FileName: file);

..并且读到:

  

未处理的类型&System; Run.Runtime.InteropServices.COMException'在ConsoleApplication1.exe中出现

3 个答案:

答案 0 :(得分:2)

您可能试图错误地打开不是Word文档的文件,它甚至可能是隐藏文件,例如Thumbs.db。

过滤掉任何非Word文件类型:

foreach (var file in files)
{
    // GET FILE EXTENSION
    var extension = System.IO.Path.GetExtension(file);

    // IF THE FILE TYPE IS NOT A WORD FILE, SKIP THIS ITERATION
    if (extension.ToLower() != ".docx" && extension.ToLower() != ".doc")
        continue;

    // Rest of your logic here
}

答案 1 :(得分:0)

这样过滤效果更好:

string[] files = System.IO.Directory.GetFiles(dir, "*.doc", System.IO.SearchOption.TopDirectoryOnly);

答案 2 :(得分:0)

我在VB项目中也遇到过这种情况。 这是打开word / excel文档时创建的隐藏文件。 但是,一旦文档正确关闭,这个损坏的文件就会消失;否则,它将保留并提示此错误消息。

只需在重新运行程序之前删除此隐藏文件。

这是我第一次发布答案,而且我也是SO的新手。 希望这会有所帮助。 :)