2016-10-24 4 views
4

私は、.Net 4.5.2 System.IO.Compression.ZipArchiveクラスのサードパーティのZIPファイルを扱っていますが、すべてうまく動作します。
しかし、ファイルエントリからディレクトリエントリまで、好ましくは最初にそれらを抽出せずに分かりやすくする必要があります。"ZipArchiveEntry"がディレクトリであるかどうかを確認するには?

ZipArchiveのエントリが展開されていないディレクトリであるかどうかを確認する方法はありますか?

ZipArchiveEntryがファイルまたはディレクトリであるかどうかを示すプロパティはありません。

答えて

10

私は本当に自分の質問に答える傾向があるようです。とにかく

、答えは単純です:

ZipArchiveEntryがディレクトリである場合、それは「/」で終わるそのFullNameプロパティ(例えば「some_dir /」)を持ち、そのNameプロパティが空の文字列になります("")。

キャッチだけ誰かが

ああ...ドキュメントにその情報を入れて世話、そしてがある場合:ディレクトリにファイルが含まれている場合は、はないがためにそこに持っているん
をそのためにZipArchiveEntryを分けてください。
特定のディレクトリを探している場合は、またはFullNameの末尾に "/"を付けて、ZipArchiveEntryを探すことはできません。ツリー全体(ZipArchiveEntryの場合はFullName)を解析する必要があります。

幸いにも私はすべてのエントリ(FullNameのすべてのZipArchiveEntryの項目のプロパティが "folder_name /"の形式で同じ文字列で始まるプロパティ)の単一の共通ディレクトリがあるかどうかをチェックするだけでした。

関連する問題