我正在使用.Net 4.5.2 System.IO.Compression.ZipArchive类处理一些第三方ZIP文件,并且所有工作都很好。
但是,我需要区分文件条目从目录条目,最好不先提取它们。如何判断“ZipArchiveEntry”是否是目录?
有没有办法告诉ZipArchive条目是否是一个目录而不提取它?
据了解,ZipArchiveEntry没有属性可以告诉它是否是文件或目录。
我正在使用.Net 4.5.2 System.IO.Compression.ZipArchive类处理一些第三方ZIP文件,并且所有工作都很好。
但是,我需要区分文件条目从目录条目,最好不先提取它们。如何判断“ZipArchiveEntry”是否是目录?
有没有办法告诉ZipArchive条目是否是一个目录而不提取它?
据了解,ZipArchiveEntry没有属性可以告诉它是否是文件或目录。
好像我真的很喜欢回答我自己的问题。
无论如何,答案是简单的:
如果ZipArchiveEntry
是一个目录,这将有其FullName
属性以“/”(如“some_dir /”)及其Name
财产结束将是空字符串(“”)。
如果只有一个人关心把这些信息在文档中......
哦,还有就是一个catch:
如果目录中包含的文件,也不会没有必须是单独为ZipArchiveEntry
。
所以,如果你正在寻找一个特定的目录,你不能只寻找一个ZipArchiveEntry
与空Name
或与“/”在FullName
结束 - 你必须解析整个树(FullName
为每ZipArchiveEntry
)。
幸运的是,我只需要检查是否有一个共同目录的所有条目(FullName
所有ZipArchiveEntry
项目的属性shoud以“folder_name /”形式的相同字符串开头)。