web-dev-qa-db-ja.com

Zipファイルに同じサブディレクトリに同じ名前の複数のファイルが含まれているのはどうしてですか?

Midnight Commander(Mac OS Xでは小文字と大文字のAFAIKを区別します)を使用して空のディレクトリに Free Pascalソースコード を抽出していて、ファイルを置き換えるかどうか尋ねられました。あまり注意を払っていなかったので、どのファイルだったのか思い出せません。すべてを置き換えることを選択したので、複数あるかどうかはわかりませんが、置き換えたファイルは元のファイルとまったく同じサイズだったのを覚えています。だから私は心配しませんでした。しかし、まったく同じ名前と配置の2番目のファイルが同じZipアーカイブで見つかったため、これがどのように可能であるかをまったく理解できません。

1
Ivan

Zip形式ではこれは完全に可能だと思います。 Zipファイルを作成するほとんどのソフトウェアは、2番目のファイルを作成するのではなく、既存のファイルを更新することを選択するため、この問題はかなりまれです。これを構成します。おそらく、Zipファイル形式は、ファイル名を使用してインデックスを作成するのではなく、インデックス番号を使用してファイルを追跡しますか?とにかく、ぼんやりとした記憶が思い出すように(何年も前に、10代の頃にいろいろと遊んだとき)、TEXT1とTEST2の2つのファイルのZipファイルを作成し、16進エディターを使用してTEST2の名前をTEXT1に変更した場合。 TEXT1という名前の2つのファイルを含むZipファイルがあります。それは絶対に違反ではありません。ソフトウェアの一般的な動作は、後のファイルが抽出されたときに既存のファイルを上書きすることについて尋ねることです。

また、おそらく複数のファイルシステム(HPFSなど)を操作しているときに、奇妙なアクティビティが少ない状況を作り出すことができたと思います。 Zipが設計されていない機能をサポートするファイルシステムを使用すると、このようなことが特に発生しやすくなります。

Windows 95では、「C:\ ProgramFiles\Something.txt」と「C:\ Program〜1\SomeTH〜1.TXT」を圧縮することで、同様のことを強制できると思います。

そのようなものを作成するためにあなたが何をしたかについての正確な答えはありませんが、報告された結果は私にとって驚くべきことではありません。これが深刻な問題を引き起こしている場合は、別のファイル形式を検討することをお勧めします。 .tarは通常、かなり優れており、ファイルシステムの詳細を保持していると見なされます(特にUnixライクなものでは)。

2
TOOGAM

Patrixが発見したように(これは、質問をばかげたものにする質問の編集ではなく、実際に答えにする必要があります)、実際には、異なるケースで書かれた同じ名前の2つの同一のファイルがあります。

pse@Mithos:~/.tmp$ unzip -v fpc.Zip | grep -i boyscout.inc
    4747  Defl:N     1607  66%  10-13-14 10:25  8b6e16fd  fpc/packages/libgbafpc/src/gba/BoyScout.inc
    4747  Defl:N     1607  66%  01-04-15 02:01  8b6e16fd  fpc/packages/libgbafpc/src/gba/boyscout.inc

tetsujinが指摘しているように、HFS(Mac OS Xファイルシステム)はデフォルトでこれを許可していません。

0
Ivan