1.需求
把某个文件夹下面文件夹一起压缩成zip格式
2.要将某个文件夹下的所有文件夹和文件一起压缩成 zip 格式,可以使用 Java 的 ZipOutputStream 类。以下是一个示例代码:
import java.io.*;
import java.util.zip.*;
public class ZipFolder {
public static void main(String[] args) {
String sourceFolder = "path/to/source/folder";
String zipFile = "path/to/destination/zipfile.zip";
try {
FileOutputStream fos = new FileOutputStream(zipFile);
ZipOutputStream zipOut = new ZipOutputStream(fos);
File folderToZip = new File(sourceFolder);
zipFile(folderToZip, folderToZip.getName(), zipOut);
zipOut.close();
fos.close();
System.out.println("Folder successfully compressed to zip file.");
} catch (IOException e) {
e.printStackTrace();
}
}
private static void zipFile(File fileToZip, String fileName, ZipOutputStream zipOut) throws IOException {
if (fileToZip.isHidden()) {
return;
}
if (fileToZip.isDirectory()) {
if (fileName.endsWith("/")) {
zipOut.putNextEntry(new ZipEntry(fileName));
zipOut.closeEntry();
} else {
zipOut.putNextEntry(new ZipEntry(fileName + "/"));
zipOut.closeEntry();
}
File[] children = fileToZip.listFiles();
for (File childFile : children) {
zipFile(childFile, fileName + "/" + childFile.getName(), zipOut);
}
return;
}
FileInputStream fis = new FileInputStream(fileToZip);
ZipEntry zipEntry = new ZipEntry(fileName);
zipOut.putNextEntry(zipEntry);
byte[] bytes = new byte[1024];
int length;
while ((length = fis.read(bytes)) >= 0) {
zipOut.write(bytes, 0, length);
}
fis.close();
}
}
在上面的代码中,你需要将 sourceFolder 替换为要压缩的文件夹的路径,将 zipFile 替换为生成的 zip 文件的路径。运行该代码后,会在指定的路径下生成一个名为 zipfile.zip 的压缩文件,其中包含了该文件夹下的所有文件夹和文件。
标签:zip,压缩成,zipFile,zipOut,fileName,文件夹,new From: https://www.cnblogs.com/codeLearn/p/17965166