ZIPファイルを抽出するアプリケーションの構築中に、ZIPファイルにディレクトリエントリが明示的に含まれることがあり、そうでない場合があることがわかりました。例えば、次のような構造が与えられると
folder1/
└── file1
以下を使用してコンテンツを一覧表示するときに、次のように異なる出力を提供するファイルが見つかりましたunzip -lv file.zip
。
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
5 Stored 5 0% 2023-04-20 13:54 3bb935c6 folder1/file1
-------- ------- --- -------
5 5 0% 1 file
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
0 Stored 0 0% 2023-04-20 13:54 00000000 folder1/
5 Stored 5 0% 2023-04-20 13:54 3bb935c6 folder1/file1
-------- ------- --- -------
5 5 0% 2 files
2番目のフォルダに明示的に指定されたフォルダを書き留めます。
ここでの基準は何ですか?プログラムは通常、この問題を処理する方法について仮定しますか?どちらにもメリットがありますか?
答え1
基準これは指定されていませんが、通常、ディレクトリメタデータも保存できるように、ディレクトリを別々のエントリとして保存します。
ZIPファイル以降いいえ個々のディレクトリエントリは有効であり、プログラムは何らかの方法でこれを仮定しないでください。
(Info-Zipを使用している場合、zip
この-D
フラグはリポジトリディレクトリエントリをスキップします。)