gpt4 book ai didi

.net - 如何以编程方式判断word文档是否已损坏?

转载 作者:行者123 更新时间:2023-12-01 01:07:46 25 4
gpt4 key购买 nike

我有一个小的 C# 应用程序,它与 word 互操作,将一堆 word .doc 文件转换为文本文件,并且在大多数情况下,这可以正常工作。

但是,如果文档已损坏,则 word 无法打开文件并弹出一个对话框,这意味着我无法完全自动化此转换过程 - 必须有人注意对话框。

有没有办法在不打开它的情况下测试一个单词 .doc 是否已损坏?也许通过单词互操作或通过 3rd 方工具。

我的一个想法是生成一个执行转换的线程,如果进程打开的时间超过 n 秒,则将其杀死,但我想知道是否有更简单的方法?

最佳答案

确定是否可靠的唯一方法 会认为文件已损坏是让 Word 打开它:-)。我不认为任何 3rd 方应用程序在这方面是 100% 可靠的——毕竟,文档实际上可能没有损坏,但如果 Word 认为它是损坏的,那对您没有帮助。但是,很明显,您可以检测到某些情况,例如文件大小为零等。

我没有遇到很多(任何?)损坏的文件,所以我想知道您看到的损坏是否可能遵循您可以检测到的模式?例如,这些文件是从某个地方下载的,通常缺少文件的后半部分还是什么?

无论如何,损坏的文件并不是 Word 弹出对话框的唯一原因。其他原因包括:

  • 该文件受密码保护
  • 该文件包含指向其他文件的链接
  • 该文件包含宏(它们本身可能会弹出对话框,或者可能导致出现安全警告对话框)

  • 您可以使用 Application.DisplayAlerts 等来规避其中的一些,但不是全部(尤其是安全警告)。

    我使用第二个线程来检测 Office 拥有的对话框并(对于它识别的那些)按下适当的按钮,取得了一些成功。它并不优雅,但确实有效。是的,如果执行某些操作的时间太长,我的第二个线程也将终止应用程序。

    关于.net - 如何以编程方式判断word文档是否已损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/924128/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com