0

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();
    }

}
4

1 に答える 1