首页 > 其他分享 >把某个文件夹下面文件夹一起压缩成zip格式

把某个文件夹下面文件夹一起压缩成zip格式

时间:2024-01-15 13:22:41浏览次数:32  
标签:zip 压缩成 zipFile zipOut fileName 文件夹 new

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

相关文章

  • win10桌面非空文件夹图标显示白色方框
    win10桌面文件夹图标不知道什么原因多了一个白色方框,可以用以下方法恢复。文件夹选项,始终显示图标前面打上对号,然后应用。......
  • IDEA项目名称后面出现中括号,模块Modules的名子和文件夹名称不同,可以右键修改名称也可
    IDEA项目名称后面出现中括号,Modules的名子和文件夹名称不同,可以右键修改名称也可以在File->ProjectStructure修改Modules的Name(快捷键ctrl+Shift+Alt+s)Project中出现中括号如:原因:Modules的名子和文件夹名称不同解决主要是通过修改名称一致就可以可以右键修改名称也可......
  • 【SVN】代码仓库增加配置.svnignore 文件,忽略不上传同步的文件夹
    1.编辑.svnignore文件新建.svnignore文件,将需要忽略的文件夹名称放入,比如下面例子datasetsdatasets_classdatadatasshujuweightsweightdatasetx64buildx86outputoutputsinference_outputs*.build*.distdistActiondemologslog__pycache__*.pt*.onnx*.e......
  • Anolis 挂载网络共享文件夹
    创建本地文件夹mkdir/mnt/map_data安装所需的软件包,要挂载Windows共享文件夹,需要安装cifs-utils软件包sudoyuminstallcifs-utils尝试挂载sudomount-tcifs//<共享文件夹的IP地址>/<共享文件夹名称><本地文件夹名称>-ousername=<帐户名>,passwor......
  • linux和window下用资源管理器打开文件所在文件夹并选中文件
    1.应用场景软件中需要定位到软件打开的文件,例如视频或者图片。用户可以方便的去通过软件去找到系统的文件; 2.解决方法window系统如果文件夹已经被打开,而且是最大化状态,文件夹中文件特别多时无法选中文件,window系统会记住用户最大化文件夹的状态,导致无法定位到文件夹,这好像是......
  • vscode 打开文件夹时设置忽略指定的文件夹
    1.在.vscode文件夹下找到文件settings.json2.打开后添加如下两行"search.exclude":{},"files.exclude":{}3.分别在两个大括号中添加相应的文件后保存即可"search.exclude":{ "**/flexspi_nor_debug":true, "**/流程图":true, "**/output":tru......
  • dic = dict(zip( ["a", "b"], ["h", "i"] )) lis_color
    dic=dict(zip(["a","b"],["h","i"]))lis_color=["lightred"]forkeyindic.keys():#问题1:判断键名是字典第几个键ind=list(dic.keys()).index(key)#问题2:根据索引循环选择颜色color=lis_color[i......
  • Golang 监控文件夹内文件的增删改(包括子文件夹)
    你需要自己处理log部分packagemainimport("crypto/md5""fmt""go-admin/log""os""path/filepath""time""github.com/fsnotify/fsnotify")typeFileChangeCallback......
  • 在excel中打开本地文件或文件夹
    效果演示:A2中输入本地文件或文件夹绝对路径B2中输入公式 =HYPERLINK(A2) 然后回车保存,再次点击B2中的链接会直接打开本地文件夹或文件......
  • linux 中 bzip2压缩与解压缩
     001、测试文件[root@pc1test]#lsa.txt[root@pc1test]#ll-h##测试文件total113M-rw-r--r--.1rootroot113MJan912:03a.txt 002、压缩文件(不保留源文件)[root@pc1test]#lsa.txt[root@pc1test]#bzip2a.txt......