彩票走势图

logo Aspose.Words使用教程
文档彩票走势图>>Aspose.Words使用教程>>Java版Word开发工具Aspose.Words基础教程:检测文件格式并检查格式兼容性

Java版Word开发工具Aspose.Words基础教程:检测文件格式并检查格式兼容性


Aspose.Words for Java是功能丰富的文字处理API,开发人员可以在自己的Java应用程序中嵌入生成,修改,转换,呈现和打印Microsoft Word支持的所有格式的功能。它不依赖于Microsoft Word,但是它提供了Microsoft Word通过其API支持的功能。

>>Aspose.Words for Java已经更新至v20.8,有93项改进和修复,点击下载体验


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

如果您不确定文件的实际内容是什么,Aspose.Words可以获取有关文件类型的信息,从而避免出现异常。

检测文件格式无异常

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

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

检查文件格式兼容性

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

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

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

File [] fileList =  new  File(dataDir).listFiles();

收集所有文件后,其余工作由DetectFileFormat 方法完成,该方法检查文件格式。下面的代码示例演示如何遍历收集的文件列表,检查每个文件的格式以及将每个文件移动到适当的文件夹:

// The path to the documents directory.
String dataDir = Utils.getDataDir(CheckFormatCompatibility.class);

String supportedDir = dataDir + "OutSupported" + File.separator;
String unknownDir = dataDir + "OutUnknown" + File.separator;
String encryptedDir = dataDir + "OutEncrypted" + File.separator;
String pre97Dir = dataDir + "OutPre97" + File.separator;

File[] fileList = new File(dataDir).listFiles();

// Loop through all found files.
for (File file : fileList) {
	if (file.isDirectory())
		continue;

	// Extract and display the file name without the path.
	String nameOnly = file.getName();
	System.out.print(nameOnly);

	// Check the file format and move the file to the appropriate folder.
	String fileName = file.getPath();
	FileFormatInfo info = FileFormatUtil.detectFileFormat(fileName);

	// Display the document type.
	switch (info.getLoadFormat()) {
	case LoadFormat.DOC:
		System.out.println("\tMicrosoft Word 97-2003 document.");
		break;
	case LoadFormat.DOT:
		System.out.println("\tMicrosoft Word 97-2003 template.");
		break;
	case LoadFormat.DOCX:
		System.out.println("\tOffice Open XML WordprocessingML Macro-Free Document.");
		break;
	case LoadFormat.DOCM:
		System.out.println("\tOffice Open XML WordprocessingML Macro-Enabled Document.");
		break;
	case LoadFormat.DOTX:
		System.out.println("\tOffice Open XML WordprocessingML Macro-Free Template.");
		break;
	case LoadFormat.DOTM:
		System.out.println("\tOffice Open XML WordprocessingML Macro-Enabled Template.");
		break;
	case LoadFormat.FLAT_OPC:
		System.out.println("\tFlat OPC document.");
		break;
	case LoadFormat.RTF:
		System.out.println("\tRTF format.");
		break;
	case LoadFormat.WORD_ML:
		System.out.println("\tMicrosoft Word 2003 WordprocessingML format.");
		break;
	case LoadFormat.HTML:
		System.out.println("\tHTML format.");
		break;
	case LoadFormat.MHTML:
		System.out.println("\tMHTML (Web archive) format.");
		break;
	case LoadFormat.ODT:
		System.out.println("\tOpenDocument Text.");
		break;
	case LoadFormat.OTT:
		System.out.println("\tOpenDocument Text Template.");
		break;
	case LoadFormat.DOC_PRE_WORD_60:
		System.out.println("\tMS Word 6 or Word 95 format.");
		break;
	case LoadFormat.UNKNOWN:
	default:
		System.out.println("\tUnknown format.");
		break;
	}

	// Now copy the document into the appropriate folder.
	if (info.isEncrypted()) {
		System.out.println("\tAn encrypted document.");
		fileCopy(fileName, new File(encryptedDir, nameOnly).getPath());
	} else {
		switch (info.getLoadFormat()) {
		case LoadFormat.DOC_PRE_WORD_60:
			fileCopy(fileName, new File(pre97Dir + nameOnly).getPath());
			break;
		case LoadFormat.UNKNOWN:
			fileCopy(fileName, new File(unknownDir + nameOnly).getPath());
			break;
		default:
			fileCopy(fileName, new File(supportedDir + nameOnly).getPath());
			break;
		}
	}
}

使用File类的Move方法将文件从相同的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 Open XML WordprocessingML文档。
Test File (Docm).docm 带有宏的Office Open XML WordprocessingML文档。
Test File (Dotx).dotx Office Open XML WordprocessingML模板。
Test File (Dotm).dotm 带有宏的Office Open XML WordprocessingML模板。
Test File (XML).xml FlatOPC OOXML文档。
Test File (RTF).rtf 富文本格式文档。
Test File (WordML).xml Microsoft Word 2003 WordprocessingML文档。
Test File (HTML).html HTML文档。
Test File (MHTML).mhtml MHTML(网络存档)文档。
Test File (Odt).odt OpenDocument文本(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 加密的Office Open XML WordprocessingML文档。
不支援的档案格式 Test File (JPG).jpg JPEG图像文件。

还想要更多吗?您可以点击阅读【2020 · Aspose最新资源整合】查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(642018183),我们很高兴为您提供查询和咨询
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP