可能重复:
How Can I Check That A File Is A Valid XPS File With C#?
如果我传递的流或没有扩展名的文件,如何识别XPS文件?我知道XPS文件是zip文件,因此我可以在开始时查找ZIP幻数,但如何识别XPS文件?
从我已经完成的研究开始,我认为我需要提取并查看[Content_Types] .xml,但是当我在那里时,我不需要(我)需要寻找的东西。
答案 0 :(得分: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
文件。
希望有用/相关的链接: