检测文件格式并检查格式兼容性

有时有必要在打开之前确定文档的格式,因为文件扩展名不能保证文件的内容是适当的。 例如,已知Crystal Reports经常以RTF格式输出文档,但给出了。doc扩展。

Aspose.Words提供了获取有关文件类型的信息的功能,以便在不确定文件的实际内容时避免异常。

无一例外地检测文件格式

当您处理各种文件格式的多个文档时,您可能需要将可以由Aspose.Words处理的文件与不能处理的文件分开。 您可能还想知道为什么某些文档无法处理。

如果您尝试将文件加载到Document对象中,并且Aspose.Words无法识别文件格式或不支持该格式,Aspose.Words将引发异常。 您可以捕获这些异常并对其进行分析,但Aspose.Words还提供了DetectFileFormat方法,使我们能够快速确定文件格式,而无需加载带有可能异常的文档。 此方法返回一个FileFormatInfo对象,其中包含检测到的有关文件类型的信息。

检查文件格式兼容性

我们可以检查所选文件夹中所有文件的格式兼容性,并按格式将它们排序到相应的子文件夹中。

由于我们正在处理文件夹中的内容,因此我们需要做的第一件事是使用Directory类的GetFiles方法(来自System.IO命名空间)获取此文件夹中所有文件的集合。

下面的代码示例演示如何获取文件夹中所有文件的列表:

当收集到所有文件时,其余的工作由DetectFileFormat方法完成,该方法检查文件格式。

下面的代码示例演示如何遍历收集的文件列表,检查每个文件的格式,并将每个文件移动到相应的文件夹:

使用File类的Move方法,从相同的System.IO命名空间将文件移动到适当的子文件夹中。

上面的示例中使用了以下文件。 文件名在左边,其描述在右边:

文件组 输入文件 类型
支持的文件格式 Test File (Doc).doc Microsoft Word95/6.0或Microsoft Word97-2003文件。
Test File (Dot).dot Microsoft Word95/6.0或Microsoft Word97-2003模板。
Test File (Docx).docx Office打开没有宏的XMLWordprocessingML文档。
Test File (Docm).docm Office使用宏打开XMLWordprocessingML文档。
Test File (Dotx).dotx Office OpenXMLWordprocessingML模板。
Test File (Dotm).dotm Office使用宏打开XMLWordprocessingML模板。
Test File (XML).xml FlatOPCOOXML文件。
Test File (RTF).rtf 富文本格式文档。
Test File (WordML).xml Microsoft Word2003WordprocessingML文件。
Test File (HTML).html HTML文件。
Test File (MHTML).mhtml MHTML(Web存档)文档。
Test File (Odt).odt OpenDocument文本(OpenOffice作家)。
Test File (Ott).ott OpenDocument文档模板。
Test File (DocPreWord60).doc Microsoft Word2.0文件。
加密文档 Test File (Enc).doc 加密的Microsoft Word95/6.0或Microsoft Word97–2003文档。
Test File (Enc).docx 加密的Office OpenXMLWordprocessingML文档。
不支持的文件格式 Test File (JPG).jpg JPEG图像文件。