ファイルサイズに基づいてzipファイルが破損しているかどうかを実用的にすばやく確認する方法について、誰かアイデアはありますか? 理想的には、zip が破損しているかどうかを確認する最善の方法は CRC チェックを行うことですが、特に大きな zip ファイルが多数ある場合は、これに時間がかかることがあります。ファイルサイズやヘッダーのチェックが簡単にできるだけでも嬉しいです。
前もって感謝します。
ファイルサイズに基づいてzipファイルが破損しているかどうかを実用的にすばやく確認する方法について、誰かアイデアはありますか? 理想的には、zip が破損しているかどうかを確認する最善の方法は CRC チェックを行うことですが、特に大きな zip ファイルが多数ある場合は、これに時間がかかることがあります。ファイルサイズやヘッダーのチェックが簡単にできるだけでも嬉しいです。
前もって感謝します。
.NET 言語で zip ファイルを処理するための無料のオープン ソース ライブラリであるDotNetZipは、必要な処理を行うCheckZip()メソッドをサポートしています。オプションでさまざまなレベルの保証を利用できます。基本レベルは、メタデータの整合性をチェックするだけです。最も完全なレベルでは、zip ファイルを bitbucket に完全に抽出して、実際の圧縮データが破損していないことを確認します。
このページのセクション 4.3.7 には、圧縮サイズがバイト 18 から始まる 4 バイトであると書かれています。それを読み取って、ファイルのサイズと比較してみてください。
ただし、次の 2 つの理由から、zip ファイルが破損しているかどうかを確認するのにはほとんど役に立たないと思います。
したがって、破損をチェックする保証された方法として CRC を計算することをお勧めします。
アーカイブ全体を「確実に」チェックするには、すべてのデータを抽出する必要があり(アーカイブに保存されているCRCは非圧縮データに対して計算されるため)、その後でも、破損していないことを100%確認することはできません(CRCが原因)良いですが、データが変更されていないことを保証するものではありません)。