我已搜索过,但未找到适合我情况的任何解决方案。下面是我的代码的屏幕截图和我得到的错误。我已经尝试过按照其他帖子推荐的管理员身份运行。
最终目标是使用C#以编程方式浏览目录中的文档并替换超链接地址。
该行的错误是:
Microsoft.Office.Interop.Word.Document document = applicationObject.Documents.Open(FileName: file);
..并且读到:
未处理的类型&System; Run.Runtime.InteropServices.COMException'在ConsoleApplication1.exe中出现
答案 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的新手。 希望这会有所帮助。 :)