更新時間:2022-11-04 11:40:27 來源:動力節點 瀏覽2459次
Java 有一個很好的類庫來處理 zip 文件。這些類在 java.util.zip 包中可用。以下 Java 示例程序展示了如何使用 java.util.zip 類創建整個文件夾的 zip。我們使用Files.walkFileTree遞歸地瀏覽目錄樹,然后將每個文件添加到新創建的 zip 文件中。請注意,此示例僅適用于 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 中,您可以使用以下命令測試新創建的 zip 文件,
解壓-t test.zip
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習