我想返回布爾值來檢查我的zip文件是否被壓縮。如果我也可以得到壓縮方法已被使用,那將是一個優點。現在我只是檢查它是加密的,並且是有效的zip。如果可以使用zip4j庫,請幫助。任何方式來獲得使用zip4j庫在java中的壓縮方法?
public static boolean isPackageCompressed(String path) throws ZipException{
boolean isPackageCompressed = false;
ZipFile zipFile = new ZipFile(path);
System.out.println(zipFile.isEncrypted());
System.out.println(zipFile.isValidZipFile());
// TODO. There is no method like zipFile.getCompressionMethod() .
return isPackageCompressed;
}
public static void main(String[] args) {
try {
isPackageCompressed("D:\\some.ZIP");
} catch (ZipException e) {
e.printStackTrace();
}
}
我不熟悉zip4j,但與ZIP格式。在ZIP中,壓縮方法是每個條目的屬性,在單個存檔中混合使用壓縮方法是完全有效的,並且您會經常遇到STORED(根本不壓縮)和DEFLATEd條目的混合。您可能需要遍歷這些條目並查看它們是否被壓縮。 – 2015-02-10 09:29:55
@Stefan Bodewig:您可以通過分享一些代碼來獲得幫助嗎? – 2015-02-10 11:40:11
使用Apache Commons Compress,我可以。 :-)就像我說的,我不熟悉zip4j。 – 2015-02-10 11:42:57