Spring boot对目录打包zip
时间: 2024-03-21 13:41:47 浏览: 12
在Spring Boot应用程序中,您可以使用Java的ZipFile和ZipEntry类来打包目录为Zip文件。以下是一个示例方法,它将目录打包为Zip文件:
```java
public void packDirectoryToZip(String sourceDirPath, String zipFilePath) throws IOException {
Path sourceDir = Paths.get(sourceDirPath);
ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFilePath));
Files.walk(sourceDir)
.filter(path -> !Files.isDirectory(path))
.forEach(path -> {
try {
String filePath = sourceDir.relativize(path).toString();
ZipEntry zipEntry = new ZipEntry(filePath);
zipOut.putNextEntry(zipEntry);
byte[] bytes = Files.readAllBytes(path);
zipOut.write(bytes, 0, bytes.length);
zipOut.closeEntry();
} catch (IOException e) {
System.err.println("Failed to pack file: " + path);
}
});
zipOut.close();
}
```
该方法使用Files.walk方法遍历目录中的所有文件,并将它们添加到Zip文件中。它创建一个ZipEntry对象来代表每个文件,并使用ZipOutputStream将它们写入Zip文件中。最后,它关闭ZipOutputStream以完成Zip文件的创建。您可以在Spring Boot应用程序中调用此方法来打包目录为Zip文件。