1

可能重复:
如何使用 C# 检查文件是否为有效的 XPS 文件?

如果传递了流或没有扩展名的文件,如何识别 XPS 文件?我知道 XPS 文件是 zip 文件,因此我可以在开始时查找 ZIP 幻数,但是如何识别 XPS 文件?

从我所做的研究来看,我认为我需要提取并查看 [Content_Types].xml,但是一旦我在那里,我需要寻找的东西并不是(太)明显。

4

1 回答 1

2

我认为在大多数情况下,您只需检查[Content_Types].xml. 有人可能会向您传递一个 zip 文件,其中包含一个类似名称的文件,但不包含您希望它作为 XPS 文档的一部分包含的信息,但这种可能性有多大?文件名非常具体,对我来说,不太可能产生意外碰撞。

但如果您想更加确定,您可以检查 XML 文件是否符合预期的模式。您通常应该看到如下内容:

<?xml version="1.0" encoding="utf-8"?>
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
    <Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
    <Default Extension="fdseq" ContentType="application/vnd.ms-package.xps-fixeddocumentsequence+xml"/>
    <Default Extension="fdoc" ContentType="application/vnd.ms-package.xps-fixeddocument+xml"/>
    <Default Extension="xml" ContentType="application/vnd.ms-printing.printticket+xml"/>
    <Default Extension="JPG" ContentType="image/jpeg"/>
    <Default Extension="fpage" ContentType="application/vnd.ms-package.xps-fixedpage+xml"/>
    <Default Extension="dict" ContentType="application/vnd.ms-package.xps-resourcedictionary+xml"/>
</Types>

您还可以检查所需的FixedDocumentSequence.fdseq文件。

希望有帮助/相关链接:

于 2012-10-14T01:06:50.487 回答