如果我有文件路径或流,是否有一个静态方法我可以用来确定文件/流是否是一个包,而不是尝试在文件/流上使用Package.Open
并捕获{ {1}}?
答案 0 :(得分:3)
您可以尝试以.zip文件的形式打开文件,然后查找元数据(从而实现验证包格式的软件包规范的一部分),或者只使用Open()
并抓住任何潜力例外。 (.docx / .xlsx / etc.格式只是遵循特定结构的ZIP文件。)
您可以尝试阅读ZIP标题,但这只会验证该文件是否为ZIP文件 - 我不确定这会为您带来多少(如果有的话)。
我的猜测是尝试打开文件并捕获异常是最简单的方法 - 如果规范更改,您的代码将继续工作。如果您使用自己的代码来验证文件格式,则必须继续维护它。