我查看了JDK和Apache压缩库随附的默认Zip库,由于以下三个原因,我对它们不满意:
zippers.unzip(InputStream zip File,File targetDirectory,String password=null
zippers.zip(File targetDirectory,String password=null)
对我来说(2)和(3)是次要点,但我确实想要一个具有单行界面的经过良好测试的库。
我知道它的时间很晚,并且有很多答案,但是这个zip4j是我使用过的最好的zip库之一。它简单(没有锅炉代码),并且可以轻松处理受密码保护的文件。
import net.lingala.zip4j.exception.ZipException; import net.lingala.zip4j.core.ZipFile; public static void unzip(){ String source = "some/compressed/file.zip"; String destination = "some/destination/folder"; String password = "password"; try { ZipFile zipFile = new ZipFile(source); if (zipFile.isEncrypted()) { zipFile.setPassword(password); } zipFile.extractAll(destination); } catch (ZipException e) { e.printStackTrace(); } }
Maven依赖项是:
<dependency> <groupId>net.lingala.zip4j</groupId> <artifactId>zip4j</artifactId> <version>1.3.2</version> </dependency>