13

ファイルサイズに基づいてzipファイルが破損しているかどうかを実用的にすばやく確認する方法について、誰かアイデアはありますか? 理想的には、zip が破損しているかどうかを確認する最善の方法は CRC チェックを行うことですが、特に大きな zip ファイルが多数ある場合は、これに時間がかかることがあります。ファイルサイズやヘッダーのチェックが簡単にできるだけでも嬉しいです。

前もって感謝します。

4

5 に答える 5

6

.NET 言語で zip ファイルを処理するための無料のオープン ソース ライブラリであるDotNetZipは、必要な処理を行うCheckZip()メソッドをサポートしています。オプションでさまざまなレベルの保証を利用できます。基本レベルは、メタデータの整合性をチェックするだけです。最も完全なレベルでは、zip ファイルを bitbucket に完全に抽出して、実際の圧縮データが破損していないことを確認します。

于 2010-10-24T16:15:30.110 に答える
5

このページのセクション 4.3.7 には、圧縮サイズがバイト 18 から始まる 4 バイトであると書かれています。それを読み取って、ファイルのサイズと比較してみてください。

ただし、次の 2 つの理由から、zip ファイルが破損しているかどうかを確認するのにはほとんど役に立たないと思います。

  1. 一部の zip ファイルには、zip 部分よりも多くのバイトが含まれています。たとえば、自己解凍型アーカイブには実行可能な部分がありますが、有効な zip のままです。
  2. ファイルは、サイズを変更せずに破損する可能性があります。

したがって、破損をチェックする保証された方法として CRC を計算することをお勧めします。

于 2010-10-17T18:11:46.757 に答える
1

アーカイブ全体を「確実に」チェックするには、すべてのデータを抽出する必要があり(アーカイブに保存されているCRCは非圧縮データに対して計算されるため)、その後でも、破損していないことを100%確認することはできません(CRCが原因)良いですが、データが変更されていないことを保証するものではありません)。

于 2010-11-12T17:21:14.803 に答える