我有一个zip文件,我正在尝试阅读其内容,在我需要读取名为[Content_Types].xml
的文件之前,该文件一直很顺利。当我尝试创建一个新URI时,它会尝试将括号转换为友好的url,这会导致文件名不匹配。
我正在使用System.IO.Packaging.Package
来读取zip,这在尝试使用package.GetPart()
读取部分包时需要URI。
如何创建一个URI,保留括号,以便从包中读取文件?
为了澄清我在这里要做的事情,Office Open XML文件(.docx,.xlsx,.pptx等)实际上是具有不同扩展名的zip文件。如果将其中一个扩展名的文件重命名为.zip,则可以看到Office文件结构的内容。每个Office Open XML文件的根目录中包含的文件之一是[Content_Types].xml
,我需要修改该特定文件。
答案 0 :(得分:1)
有一个重载的URI构造函数接受一个布尔dontEscape,它应该阻止括号被转义。 Similar question
根据重新阅读更新的问题进行编辑:
因此,通过一些谷歌搜索,它看起来像[Content_Types] .xml是一个将zip文件变成“zip包”的文件。巧合的是,System.IO.Packaging.Package
仅适用于zip包(不是常规的zip文件)。它也只编写zip包(总是包含[Content_Types] .xml)。我不认为您可以通过System.IO.Packaging.Package
直接通过[Content_Types] .xml进行设计。
答案 1 :(得分:0)