更新時(shí)間:2022-11-04 11:40:27 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2591次
Java 有一個(gè)很好的類庫(kù)來(lái)處理 zip 文件。這些類在 java.util.zip 包中可用。以下 Java 示例程序展示了如何使用 java.util.zip 類創(chuàng)建整個(gè)文件夾的 zip。我們使用Files.walkFileTree遞歸地瀏覽目錄樹,然后將每個(gè)文件添加到新創(chuàng)建的 zip 文件中。請(qǐng)注意,此示例僅適用于 Java 1.7 及更高版本。
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
// Source code to create a zip file from a given folder
// This example program recursively adds all files in the folder
// Works only with Java 7 and above
public class ZipFolder {
public static void main(String[] args) throws Exception {
ZipFolder zf = new ZipFolder();
// Use the following paths for windows
//String folderToZip = "c:\\demo\\test";
//String zipName = "c:\\demo\\test.zip";
// Linux/mac paths
String folderToZip = "/Users/jj/test";
String zipName = "/Users/jj/test.zip";
zf.zipFolder(Paths.get(folderToZip), Paths.get(zipName));
}
// Uses java.util.zip to create zip file
private void zipFolder(Path sourceFolderPath, Path zipPath) throws Exception {
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipPath.toFile()));
Files.walkFileTree(sourceFolderPath, new SimpleFileVisitor<Path>() {
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
zos.putNextEntry(new ZipEntry(sourceFolderPath.relativize(file).toString()));
Files.copy(file, zos);
zos.closeEntry();
return FileVisitResult.CONTINUE;
}
});
zos.close();
}
}
在 linux/mac 中,您可以使用以下命令測(cè)試新創(chuàng)建的 zip 文件,
解壓-t test.zip
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)