java.util.zip を使用して Zip ファイルを作成しました。ここで、作成された ZIP が正しく、圧縮されていない ZIP ファイルのサイズが、圧縮した実際のフォルダーと等しいかどうかを確認したいと思います。
ZIP 内のすべてのヘッダーが正しい場合に true を返すメソッド ZipFile.isValid() を知っています。しかし、私の問題は解決しません。
ありがとう :)
*.zip ファイルを解凍し、各 ZipEntry 要素を繰り返し、各 ZipEntry.getSize() を合計します。これを、圧縮したファイル サイズの合計と比較します。または (何らかの理由で ZipEntry ヘッダーを信頼しない場合)、各 ZipEntry を解凍し、バイトをカウントしますが、それらを破棄します。郵便番号の簡単なチェックとして、または単体テストでも、これらのいずれかを実行できます。
ZipEntry を次のように反復処理できます。
zipInStream = new ZipInputStream(new FileInputStream(zipFile));
ZipEntry zipEntry;
while ((zipEntry = zipInStream.getNextJarEntry()) != null) {
String entryName = zipEntry.getName();
....
}
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();
これで、それらを比較できます。