Определение формата файла и проверка совместимости форматов

Иногда необходимо определить формат документа перед открытием, поскольку расширение файла не гарантирует, что содержимое файла соответствует действительности. Например, известно, что Crystal Reports часто выводит документы в формате RTF, но присваивает им расширение .doc.

Aspose.Words предоставляет возможность получения информации о типе файла, чтобы избежать исключения, если вы не уверены в фактическом содержимом файла.

Определение формата файла без каких-либо исключений

Когда вы имеете дело с несколькими документами в различных форматах, вам может потребоваться отделить те файлы, которые могут быть обработаны с помощью Aspose.Words, от тех, которые не могут. Возможно, вы также захотите узнать, почему некоторые документы не могут быть обработаны.

Если вы попытаетесь загрузить файл в объект Document и Aspose.Words не сможет распознать формат файла или формат не поддерживается, Aspose.Words вызовет исключение. Вы можете перехватить эти исключения и проанализировать их, но Aspose.Words также предоставляет метод DetectFileFormat, который позволяет нам быстро определить формат файла, не загружая документ с возможными исключениями. Этот метод возвращает объект FileFormatInfo, содержащий обнаруженную информацию о типе файла.

Проверьте совместимость форматов файлов

Мы можем проверить совместимость форматов всех файлов в выбранной папке и отсортировать их по формату в соответствующие подпапки.

Поскольку мы имеем дело с содержимым папки, первое, что нам нужно сделать, это получить коллекцию всех файлов в этой папке, используя метод GetFiles класса Directory (из пространства имен System.IO).

В следующем примере кода показано, как получить список всех файлов в папке:

Когда все файлы собраны, остальная часть работы выполняется методом DetectFileFormat, который проверяет формат файла.

В следующем примере кода показано, как выполнить итерацию по собранному списку файлов, проверить формат каждого файла и переместить каждый файл в соответствующую папку:

Файлы перемещаются в соответствующие подпапки с помощью метода Move класса File из того же пространства имен System.IO.

В приведенном выше примере используются следующие файлы. Название файла указано слева, а его описание - справа:

Группа файлов Входной документ Тип
Поддерживаемые форматы файлов Test File (DOC).doc Документ Microsoft Word 95/6.0 или Microsoft Word 97 – 2003.
Test File (DOT).dot Шаблон Microsoft Word 95/6.0 или Microsoft Word 97 – 2003.
Test File (DOCX).docx Office открывает XML-документ WordprocessingML без макросов.
Test File (DOCM).docm Office открывает XML-документ WordprocessingML с макросами.
Test File (DOTX).dotx Шаблон Office Open XML WordprocessingML.
Test File (DOTM).dotm Office открывает XML-шаблон WordprocessingML с макросами.
Test File (XML).xml Документ FlatOPC OOXML.
Test File (RTF).rtf Документ в формате Rich Text.
Test File (WordML).xml Документ Microsoft Word 2003 WordprocessingML.
Test File (HTML).html HTML-документ.
Test File (MHTML).mhtml Документ в формате MHTML (веб-архив).
Test File (ODT).odt Текст открытого документа (OpenOffice Writer).
Test File (OTT).ott Шаблон документа OpenDocument.
Test File (DocPreWord60).doc Документ Microsoft Word 2.0.
Зашифрованные документы Test File (Enc).doc Зашифрованный документ Microsoft Word 95/6.0 или Microsoft Word 97 – 2003.
Test File (Enc).docx Зашифрованный офисный открытый XML-документ WordprocessingML.
Неподдерживаемые форматы файлов Test File (JPG).jpg Файл изображения в формате JPEG.