0

如果我有文件路径或流,是否可以使用静态方法来确定文件/流是否是包,而不是尝试Package.Open在文件/流上使用并捕获System.IO.FileFormatException

4

1 回答 1

3

您可以尝试将文件作为 .zip 文件打开,然后查找元数据(从而实现验证包格式的包规范的一部分),也可以只使用Open()并捕获任何潜在的异常。(.docx / .xlsx / etc. 格式只是遵循特定结构的 ZIP 文件。)

您可以尝试读取 ZIP 标头,但这只会验证该文件是 ZIP 文件 - 我不确定这对您有什么好处(如果有的话)。

我的猜测是,尝试打开文件并捕获异常是最简单的方法——如果规范更改,您的代码将继续工作。如果您使用自己的代码来验证文件格式,则必须继续维护它。

于 2017-09-13T00:54:38.157 回答