我最近发现了https://commons.apache.org/proper/commons-compress/zip.html,Apache Commons Compress库。
但是,没有直接的方法可以将给定文件解压缩到特定目录。
有没有规范/简单的方法来做到这一点?
答案 0 :(得分:1)
我不知道这样做的包裹。你需要写一些代码。这并不难。我没有使用过该软件包,但在JDK中很容易做到。查看JDK中的ZipInputStream。使用FileInputStream打开文件。从FileInputStream创建ZipInputStream,您可以使用getNextEntry读取条目。它确实非常简单,但需要一些代码。
答案 1 :(得分:0)
一些使用IOUtils的示例代码:
public static void unzip(Path path, Charset charset) throws IOException{
String fileBaseName = FilenameUtils.getBaseName(path.getFileName().toString());
Path destFolderPath = Paths.get(path.getParent().toString(), fileBaseName);
try (ZipFile zipFile = new ZipFile(path.toFile(), ZipFile.OPEN_READ, charset)){
Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
Path entryPath = destFolderPath.resolve(entry.getName());
if (entry.isDirectory()) {
Files.createDirectories(entryPath);
} else {
Files.createDirectories(entryPath.getParent());
try (InputStream in = zipFile.getInputStream(entry)){
try (OutputStream out = new FileOutputStream(entryPath.toFile())){
IOUtils.copy(in, out);
}
}
}
}
}
}