痞子374 2024-08-15 13:34 采纳率: 95%
浏览 2
已结题

Java如何将resources下的文件夹压缩成包

Java如何对resources下的一个文件夹进行压缩,将其压缩为压缩包

  • 写回答

2条回答 默认 最新

  • 一直免费一直爽 2024-08-15 13:35
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    要将resources下的文件夹压缩成包,可以使用Java的java.util.zip包中的类。以下是一个示例代码,展示了如何将resources下的文件夹压缩为ZIP文件:

    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 ZipFolder {
        public static void main(String[] args) {
            String sourceFolder = "resources/your_folder"; // 替换为你要压缩的文件夹路径
            String zipFile = "resources/your_folder.zip"; // 替换为你要生成的压缩文件路径
    
            try {
                zipFolder(sourceFolder, zipFile);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        public static void zipFolder(String sourceFolder, String zipFile) throws IOException {
            FileOutputStream fos = new FileOutputStream(zipFile);
            ZipOutputStream zos = new ZipOutputStream(fos);
            File fileToZip = new File(sourceFolder);
    
            zipFile(fileToZip, fileToZip.getName(), zos);
            zos.close();
            fos.close();
        }
    
        private static void zipFile(File fileToZip, String fileName, ZipOutputStream zos) throws IOException {
            if (fileToZip.isHidden()) {
                return;
            }
            if (fileToZip.isDirectory()) {
                if (fileName.endsWith("/")) {
                    zos.putNextEntry(new ZipEntry(fileName));
                    zos.closeEntry();
                } else {
                    zos.putNextEntry(new ZipEntry(fileName + "/"));
                    zos.closeEntry();
                }
                File[] children = fileToZip.listFiles();
                for (File childFile : children) {
                    zipFile(childFile, fileName + "/" + childFile.getName(), zos);
                }
                return;
            }
            FileInputStream fis = new FileInputStream(fileToZip);
            ZipEntry zipEntry = new ZipEntry(fileName);
            zos.putNextEntry(zipEntry);
            byte[] bytes = new byte[1024];
            int length;
            while ((length = fis.read(bytes)) >= 0) {
                zos.write(bytes, 0, length);
            }
            fis.close();
        }
    }
    

    请将sourceFolder变量替换为你要压缩的文件夹路径,将zipFile变量替换为你要生成的压缩文件路径。运行此代码后,resources下的文件夹将被压缩为一个ZIP文件。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月23日
  • 已采纳回答 8月15日
  • 创建了问题 8月15日