
解凍エラー「End-of-central-directory 署名が見つかりません」を修正する方法
稀に、zipアーカイブを解凍しようとすると、「End-of-central-directory signature not found(中央ディレクトリの終了署名が見つかりません。このファイルはzipファイルではないか、複数部分から成るアーカイブの1つのディスクを構成しています。後者の場合、中央ディレクトリとzipファイルのコメントはこのアーカイブの最後のディスクにあります)」というエラーが表示されることがあります。このチュートリアルでは、アーカイブを解凍しようとする際に発生する「End-of-central-directory signature not found(中央ディレクトリの終了署名が見つかりません)」というエラーの解決方法を説明します。
少し前置きすると、ZIPファイルを扱う際に「End-of-central-directory signature not found(中央ディレクトリの終了署名が見つかりません)」というエラーが表示される一般的な理由は、ファイルが破損しているか、ファイルのダウンロードが不完全であるか、マルチパートアーカイブファイルで他のコンポーネントが見つからないか、ZIPファイルが実際にはZIPアーカイブファイルではないかのいずれかです。しかし、ほとんどのユーザーがZIPアーカイブを解凍しようとする際にこのエラーに遭遇する最も可能性の高い理由は、ZIPファイルのダウンロードが不完全であるか、ZIPアーカイブが破損していることです。
Zipエラー「End-of-central-directory署名が見つかりません」の7つのトラブルシューティング
この zip エラーを解決するためのさまざまな解決策は通常次のいずれかであり、どれを試してどれが機能するかを確認できます。
- ソースからzipアーカイブを再ダウンロードします。ダウンロードが中断されたり、何らかの理由で破損したりした場合は、zipアーカイブを再ダウンロードするだけで問題が解決する可能性が高くなります。
- 可能であれば、ミラーから zip アーカイブを再度ダウンロードしてみてください。
- 問題のzipファイルのダウンロード方法を変更してください。例えば、別のウェブブラウザを使用するか、curlコマンドを使ってファイルをダウンロードしてください。
- 対象の zip アーカイブを解凍するには、別の解凍プログラムを試してください。たとえば、コマンドラインで「unzip」を実行する、The Unarchiver for Mac、jar、7z、rar、gunzip などです。
- 必要に応じてファイル名を置き換え、次の構文を使用してコマンド ラインで zip アーカイブの修復を試みます。
- アーカイブファイルが複数の部分で構成されている場合は、すべてのzipファイルが同じディレクトリ内に含まれていることを確認してください。
- 可能であれば、元の zip ファイルを sha1 または md5 で検証します。これにより、ダウンロードしようとしていたファイルと比較して、ファイルが破損しているか、何らかの変更が加えられているかどうかがわかります。
zip -FF ProblemZip.zip --out RepairedZip.zip | unzip
この問題は、ZIPファイルを扱う際に様々な状況で発生する可能性があります。通常、ファイルが破損していたり不完全だったりした場合は、ファイルを再ダウンロードするのが最も簡単な方法です。しかし、場合によってはファイルを修復したり、別のZIPアプリを使用したりする必要があることもあります。
最近、MacでSignalメッセンジャーを設定しようとした際に、この問題に何度も遭遇しました。最終的には、(確かに時代遅れの)ウェブブラウザではなくcurlを使ってSignalをダウンロードすることで解決しました。少し不思議なのですが、いずれにしても解決しました。別のダウンロード方法を使うと、CPGZ zipファイルの解凍ループが解消されることが多く、これは通常、ファイルが何らかの理由で破損していることを示唆しています。
「End-of-central-directory signature not found」という zip エラーを解決するための他のヒント、コツ、提案があれば、以下のコメント欄で共有してください。