0

java.util.zip を使用して Zip ファイルを作成しました。ここで、作成された ZIP が正しく、圧縮されていない ZIP ファイルのサイズが、圧縮した実際のフォルダーと等しいかどうかを確認したいと思います。

ZIP 内のすべてのヘッダーが正しい場合に true を返すメソッド ZipFile.isValid() を知っています。しかし、私の問題は解決しません。

ありがとう :)

4

2 に答える 2

0

*.zip ファイルを解凍し、各 ZipEntry 要素を繰り返し、各 ZipEntry.getSize() を合計します。これを、圧縮したファイル サイズの合計と比較します。または (何らかの理由で ZipEntry ヘッダーを信頼しない場合)、各 ZipEntry を解凍し、バイトをカウントしますが、それらを破棄します。郵便番号の簡単なチェックとして、または単体テストでも、これらのいずれかを実行できます。

ZipEntry を次のように反復処理できます。

zipInStream = new ZipInputStream(new FileInputStream(zipFile));
ZipEntry zipEntry;
while ((zipEntry = zipInStream.getNextJarEntry()) != null) {
    String entryName = zipEntry.getName();
    ....
}
于 2013-06-27T03:01:22.833 に答える
0

ZIPファイルが正しく作成されているか確認する

if (myZipFile.isValid())
{
    // The file has been created successfully
}

ディレクトリとファイルの長さを知る。

File dir = new File("path/to/the/directory/");
int size = dir.length();

File zip = new File("path/to/zipfile.zip");
int zipSize = zip.length();

これで、それらを比較できます。

于 2013-06-27T03:02:10.737 に答える