zip4j を使用して、パスワード (AES-256) で保護されている zip パッケージを解凍します。私の問題は、コードが機能していないことではなく、パスワードが .zip の実際のパスワードと一致しない場合にエラーがスローされないことです。
.zip には 123 のパスワードがあり、zip4j にはパスワード 123456789 を設定しました。そのため、すべてを抽出することはできません。抽出できなかったというエラーまたはメッセージが予想されます。実際のケースでは、彼はそれを抽出しませんが、例外もエラー メッセージも何も表示しません。
抽出が成功したかどうかを確認する方法はありますか?
protected void unpackZip(String destinationPath, String archivePath) throws InterruptedException {
int onChange = 0;
try {
ZipFile zipFile = new ZipFile( archivePath );
zipFile.setRunInThread( true );
if (zipFile.isEncrypted()) {
zipFile.setPassword( "123456789");
}
zipFile.extractAll( destinationPath );
// http://www.lingala.net/zip4j/forum/index.php?topic=68.0
ProgressMonitor progressMonitor = zipFile.getProgressMonitor();
while (progressMonitor.getState() == ProgressMonitor.STATE_BUSY) {
// To get the percentage done
if (onChange != progressMonitor.getPercentDone()) {
onChange = progressMonitor.getPercentDone();
sendWebStatusUiMessage( "Extracted : " + onChange + "% ", "update" );
}
try {
Thread.sleep( 1000 );
} catch (Exception e) {
}
}
} catch (ZipException e) {
e.printStackTrace();
}
}