C# 如何以编程方式检测word(2003)文档是否已损坏?

C# 如何以编程方式检测word(2003)文档是否已损坏?,c#,ms-word,ms-office,office-interop,C#,Ms Word,Ms Office,Office Interop,可能重复: 我想检查word(.doc二进制格式)文档是否使用c#损坏。 我正在使用Interop.Word从现有文档文件生成PDF和html,并希望检测和隔离损坏的文档文件以便手动处理。 Word不会生成任何异常或事件,如果文件损坏,它只会显示一个对话框,用于选择正确的编码。我使用标志“DisplayAlerts=Word.WdAlertLevel.wdAlertsOne”抑制所有对话框,因为where停止进程执行。 有什么想法吗?按照描述阅读Word文档。如果文档已损坏,则应该会出现异常。

可能重复:

我想检查word(.doc二进制格式)文档是否使用c#损坏。 我正在使用Interop.Word从现有文档文件生成PDF和html,并希望检测和隔离损坏的文档文件以便手动处理。 Word不会生成任何异常或事件,如果文件损坏,它只会显示一个对话框,用于选择正确的编码。我使用标志“DisplayAlerts=Word.WdAlertLevel.wdAlertsOne”抑制所有对话框,因为where停止进程执行。
有什么想法吗?

按照描述阅读Word文档。如果文档已损坏,则应该会出现异常。(另请查看问题下方评论中的问题)

如果word文档下的文件系统出现问题,则可能会报告word文档已损坏。或者如果读取它的机器中存在硬件故障。或者如果读取文件的Word程序已损坏。仅仅因为读取文件时出现异常,并不能证明文件中的字节是罪魁祸首。您也可以尝试在OpenOffice中打开该文件以隔离问题。是的,您是对的。这些情况应该非常罕见,所以我隐式地假设其他任何情况都有效。尝试打开该文件,如果抛出异常,则假设该文件为currupt。我不认为有一个图书馆可以这样做。