import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class AsposeZipUtil {
public static void main(String[] args) {
String sourceFolder = "待压缩的文件夹路径";
String zipFilePath = "目标压缩文件路径";
try {
zip(sourceFolder, zipFilePath);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 压缩文件夹
* @param sourceFolder 需要压缩的文件夹
* @param zipFilePath 输出zip地址
* @throws IOException
*/
public static void zip(String sourceFolder,String zipFilePath) throws IOException {
try (ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFilePath))) {
File folderToZip = new File(sourceFolder);
addFolderToZip(folderToZip, "", zipOut);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void addFolderToZip(File folder, String parentFolder, ZipOutputStream zipOut) throws IOException {
if (folder.isDirectory()) {
// 获取文件夹中的所有子文件和子文件夹
for (File file : folder.listFiles()) {
// 递归调用,处理子文件夹
addFolderToZip(file, parentFolder + folder.getName() + "/", zipOut);
}
} else {
// 添加单个文件到压缩文件中
byte[] buffer = new byte[1024];
try (FileInputStream fis = new FileInputStream(folder)) {
zipOut.putNextEntry(new ZipEntry(parentFolder + folder.getName()));
int length;
while ((length = fis.read(buffer)) > 0) {
zipOut.write(buffer, 0, length);
}
}
}
}
}
Java 压缩文件夹
最新推荐文章于 2024-08-12 15:45:48 发布