Единственный надежный способ определить, будет ли Word считать, что файл поврежден, - это заставить Word открыть его :-). Я не думаю, что какое-либо стороннее приложение будет на 100% надежным в этом отношении - в конце концов, документ может на самом деле не быть поврежденным, но это не поможет вам, если Word считает, что это есть . Тем не менее, очевидно, что вы можете обнаружить некоторые ситуации, например, файл нулевого размера или тому подобное.
Я не сталкиваюсь со многими (какими-либо?) Поврежденными документами, поэтому мне интересно, может ли наблюдаемая вами коррупция соответствовать шаблону, который вы можете обнаружить? Например, эти документы загружаются откуда-то и обычно пропускают последнюю часть файла или что-то еще?
В любом случае поврежденный файл - не единственная причина, по которой Word может открыть диалоговое окно. Другие причины включают в себя:
- файл защищен паролем
- файл содержит ссылки на другие файлы
- файл содержит макросы (которые могут сами всплывать в диалоговых окнах или могут вызывать появление диалогового окна с предупреждением о безопасности)
- и т.д.
Некоторые из них можно обойти, используя Application.DisplayAlerts и т. Д., Но не все (особенно предупреждение безопасности).
У меня был некоторый успех с использованием 2-го потока, который обнаруживает диалоговые окна, принадлежащие Office, и (для тех, которые он распознает) нажимает соответствующую кнопку. Это вряд ли элегантно, но это работает. И да, мой второй поток также завершит работу приложения, если для выполнения определенных операций потребуется слишком много времени.