Wut? :)
Zip4j bohuzel neumi, otestovat jestli je heslo spravne, bez toho aniž by se pokusil archiv rozbalit.
Dalo by se to udelat takto, ale je to kapku o nicem, pac se to bude rozbalovat na disk, kdyz bude heslo spravne. Muzes si ale po sobe uklidit.
public boolean canUnzipFile(File file, String password) {
try {
ZipFile zipFile = new ZipFile(file.getAbsolutePath());
if (zipFile.isEncrypted()) {
zipFile.setPassword(password);
}
zipFile.extractAll("c:\\ZipTest"); // rozbaloval bych do temp folderu
// http://stackoverflow.com/questions/617414/how-to-create-a-temporary-directory-folder-in-java
} catch (ZipException ex) {
if (ex.getCode() == 5) {
return false;
}
}
// tady jeste musis smazat, cos rozbalil
// http://stackoverflow.com/questions/779519/delete-directories-recursively-in-java
return true;
}