我正在使用.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 /」形式的相同字符串開頭)。