精华内容
下载资源
问答
  • 主要介绍了Python实现压缩文件夹与解压缩zip文件的方法,涉及Python使用zipfile模块进行zip文件压缩与解压缩相关操作技巧,需要的朋友可以参考下
  • 主要介绍了Java实现把文件及文件夹压缩zip,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • java压缩文件夹zip

    2017-08-31 15:26:40
    java.util.zip工具包里面的类实现文件夹zip压缩。具体会用到FileInputStream,CheckedOutputStream,BufferedInputStream,ZipOutputStream.
  • 主要介绍了python压缩文件夹内所有文件为zip文件的方法,可实现简单的zip文件压缩功能,需要的朋友可以参考下
  • 压缩程序,压缩指定位置的文件或文件夹
  • 主要为大家详细介绍了Android实现文件或文件夹压缩成.zip格式压缩包,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 文件夹压缩ZIP

    2013-04-15 14:51:37
    使用方法:在工程中导入 CMyZip.h和CMyZip.cpp这两个文件 然后在要调用的压缩的类里面 导入#include "CMyZip.h" 然后 YZIP zp; zp.YaSuo("E:\\12212","E:\\bcel.zip"); 就ok 方法注释int YaSuo(CString srcPath,...
  • Bat批处理压缩文件夹

    2020-05-16 13:39:54
    对一些大批量文件夹文件夹中存在文件),需要进行批处理压缩,需要进行编写bat程序进行处理。有需要的同学,可以在此进行下载使用,不符合要求的,百度自己写。
  • NULL 博文链接:https://alog2012.iteye.com/blog/1616684
  • zlib库的使用,可以压缩和解压文件夹压缩: CreateDirFromZip("test\\example2", "test\\example.zip"); 解压: CreateZipFromDir("test\\example", "test\\example.zip");
  • 多资料夹批量压缩成7zip: 将执行目录下的所有资料夹分别压缩为单一的7zip压缩档,预设为最大化压缩,需要安装7-zip于下面位置 C:\Program Files\7-Zip\7z.exe D:\Program Files\7-ZipPortable\App\7-Zip64\7z.exe
  • Linux 压缩文件夹tar/zip

    千次阅读 2019-01-14 09:32:26
    使用方式:tar -zcvf 压缩后文件名 要压缩文件名 命令 tar -zcvf ./bjadmin21.zip bjadmin21/ 解压zip文件 unzip bjadmin21.zip

    使用方式:tar -zcvf 压缩后文件名 要压缩文件名

    命令

    tar -zcvf ./bjadmin21.zip bjadmin21/

    解压zip文件

    unzip bjadmin21.zip

     

    展开全文
  • DOS压缩文件RAR与ZIP的DOS命令详解
  • java控制指定路径下的文件夹压缩zip格式。 java将zip压缩包解压成为文件夹。直接使用io流进行操作,不需借助其他jar包
  • php 把文件夹压缩zip

    2020-08-15 17:08:18
    //关闭处理的zip文件 } zip/1.zip 是生成压缩包的地址 /small 是要压缩zip文件夹目录 /** * 文件夹压缩zip * @param [string] $path 要压缩文件夹路径 * @param [object] $zip 实例化 ZipArchive */ ...

    安装php扩展

    https://www.jianshu.com/p/7d032dc34219

    参考例子

    https://www.cnblogs.com/xiaozong/p/5744061.html

    https://www.cnblogs.com/soiq-1123/p/9036305.html

    https://blog.csdn.net/weixin_42799222/article/details/88218696

    https://www.jianshu.com/p/b9af8f1661a0

    https://m.jb51.net/article/168222.htm

      $zip = new \ZipArchive;
    
      if($zip->open('zip/1.zip',\ZipArchive::CREATE)=== TRUE){//如果只用ZipArchive::OVERWRITE那么如果指定目标存在的话就会复写,否则返回错误9,而两个都用则会避免这个错误
                    addFileToZip('/small', $zip); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法,注意"\"是转移字符,"/"不是
                    $zip->close(); //关闭处理的zip文件
                }

    zip/1.zip 是生成压缩包的地址

    /small 是要压缩成zip的文件夹目录

    /**
     * 文件夹压缩成zip
     * @param [string] $path 要压缩的文件夹路径
     * @param [object] $zip  实例化 ZipArchive
     */
    function addFileToZip($path, $zip)
    {
        $handler = opendir($path); //打开当前文件夹由$path指定。
        while (($filename = readdir($handler)) !== false) {
            if ($filename != "." && $filename != ".." ) { //文件夹文件名字为'.'和‘..’,不要对他们进行操作
                // dump(is_dir($path . "/" . $filename));die;
                if (is_dir($path . "/" . $filename)) { // 如果读取的某个对象是文件夹,则递归
                    addFileToZip($path . "/" . $filename, $zip);
                } else { //将文件加入zip对象
                    $zip->addFile($path . "/" . $filename);
                }
            }
        }
        @closedir($path);
    }

     

    展开全文
  • 文件夹下的所有子目录及所有文件进行压缩和解压,需在一起使用,有需要的可以下载下
  • 小工具,接收命令行参数,参数为要压缩文件夹绝对路径
  • 一定情况下,会将空文件夹变成文件格式,如: 文件:鉴定人资格 鉴定人资格证书 鉴定人资格证身份证 文件夹都变成文件了 文件:鉴定资格证书 鉴定人资格证书啊 都是没问题的 最终改为使用:org.apache.ant 依赖...

    两种实现方式

    • java.util.zip.ZipOutputStream
    • org.apache.tools.ant

    注意

    最初采用java.util.zip.ZipOutputStream的方式,
    jdk为1.8,出现BUG:
    一定情况下,会将空文件夹变成文件格式,如:
    空目录:鉴定人资格 鉴定人资格证书 鉴定人资格证身份证 文件夹都变成文件了
    空目录:鉴定资格证书 鉴定人资格证书啊 都是没问题的
    最终改为使用:org.apache.ant 依赖包,得以解决

    org.apache.ant 方式

      		<dependency>
                <groupId>org.apache.ant</groupId>
                <artifactId>ant</artifactId>
                <version>1.10.8</version>
            </dependency>
    
    public class ZipApacheUtil {
        private File zipFile;
    
        /**
         * 压缩文件构造函数
         * @param finalFile 最终压缩生成的压缩文件:目录+压缩文件名.zip
         */
        public ZipApacheUtil(String finalFile) {
            zipFile = new File(finalFile);
        }
    
        /**
         * 执行压缩操作
         * @param srcPathName 需要被压缩的文件/文件夹
         */
        public void compressExe(String srcPathName) {
            File srcdir = new File(srcPathName);
            if (!srcdir.exists()){
                throw new RuntimeException(srcPathName + "不存在!");
            }
    
            Project prj = new Project();
            Zip zip = new Zip();
            zip.setProject(prj);
            zip.setDestFile(zipFile);
            FileSet fileSet = new FileSet();
            fileSet.setProject(prj);
            fileSet.setDir(srcdir);
            //fileSet.setIncludes("**/*.java"); //包括哪些文件或文件夹 eg:zip.setIncludes("*.java");
            //fileSet.setExcludes(...); //排除哪些文件或文件夹
            zip.addFileset(fileSet);
            zip.execute();
        }
    }
    

    java.util.zip.ZipOutputStream方式

    public final class ZIPUtil {
        private ZIPUtil() {
    
        }
    
        /**
         * 压缩成ZIP 方法     * @param srcDir 压缩文件夹路径
         *
         * @param out              压缩文件输出流
         * @param keepDirStructure 是否保留原来的目录结构,true:保留目录结构;
         *                         false:所有文件跑到压缩包根目录下(注意:不保留目录结构可能会出现同名文件,会压缩失败)
         * @throws RuntimeException 压缩失败会抛出运行时异常
         */
        public static void toZip(String srcDir, OutputStream out, boolean keepDirStructure)
                throws Exception {
            ZipOutputStream zos = null;
            try {
                zos = new ZipOutputStream(out);
                File sourceFile = new File(srcDir);
                compress(sourceFile, zos, sourceFile.getName(), keepDirStructure);
            } catch (Exception e) {
                throw new RuntimeException("zip error from ZipUtil", e);
            } finally {
                if (zos != null) {
                   zos.close();
                }
                if (out != null) {
                   out.close();
                }
            }
    
        }
    
        /**
         * 递归压缩方法
         *
         * @param sourceFile       源文件
         * @param zos              zip输出流
         * @param name             压缩后的名称
         * @param keepDirStructure 是否保留原来的目录结构,true:保留目录结构;
         *                         false:所有文件跑到压缩包根目录下(注意:不保留目录结构可能会出现同名文件,会压缩失败)
         * @throws Exception
         */
        private static void compress(File sourceFile, ZipOutputStream zos, String name,
                                     boolean keepDirStructure) throws Exception {
            byte[] buf = new byte[BUFFER_SIZE];
            if (sourceFile.isFile()) {
                // 向zip输出流中添加一个zip实体,构造器中name为zip实体的文件的名字
                zos.putNextEntry(new ZipEntry(name));
                // copy文件到zip输出流中
                int len;
                FileInputStream in = new FileInputStream(sourceFile);
                while ((len = in.read(buf)) != -1) {
                    zos.write(buf, 0, len);
                }
                // Complete the entry
                zos.closeEntry();
                in.close();
            } else {
                //是文件夹
                File[] listFiles = sourceFile.listFiles();
                if (listFiles == null || listFiles.length == 0) {
                    // 需要保留原来的文件结构时,需要对空文件夹进行处理
                    if (keepDirStructure) {
                        // 空文件夹的处理
                        zos.putNextEntry(new ZipEntry(name + "/"));
                        // 没有文件,不需要文件的copy
                        zos.closeEntry();
                    }
    
                } else {
                    for (File file : listFiles) {
                        // 判断是否需要保留原来的文件结构
                        if (keepDirStructure) {
                            // 注意:file.getName()前面需要带上父文件夹的名字加一斜杠,
                            // 不然最后压缩包中就不能保留原来的文件结构,即:所有文件都跑到压缩包根目录下了
                            compress(file, zos, name + "/" + file.getName(), keepDirStructure);
                        } else {
                            compress(file, zos, file.getName(), keepDirStructure);
                        }
    
                    }
                }
            }
        }
    
        /**
         * 创建Zip文件
         *
         * @param fileList    要压缩的文件路径
         * @param zipFileName ZIP压缩包的路径
         * @return ZIP压缩包的路径
         */
        public static String createZipFile(List<String> fileList, String zipFileName) throws IOException {
            if (CollectionUtils.isEmpty(fileList) || StringUtils.isBlank(zipFileName)) {
                return null;
            }
            //构建压缩文件File
            File zipFile = new File(zipFileName);
            //构建ZIP流对象
            try (ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFile))) {
                //循环处理传过来的集合
                for (int i = 0; i < fileList.size(); i++) {
                    //获取目标文件
                    File inFile = new File(fileList.get(i));
                    if (inFile.exists()) {
                        //定义ZipEntry对象
                        ZipEntry entry = new ZipEntry(inFile.getName());
                        //赋予ZIP流对象属性
                        out.putNextEntry(entry);
                        int len = 0;
                        //缓冲
                        byte[] buffer = new byte[1024];
                        //构建FileInputStream流对象
                        try (FileInputStream fis = new FileInputStream(inFile)) {
                            while ((len = fis.read(buffer)) > 0) {
                                out.write(buffer, 0, len);
                                out.flush();
                            }
                        }
                        //关闭closeEntry
                        out.closeEntry();
                    }
                }
            }
            return zipFileName;
        }
    
        /**
         * 创建Zip文件
         *
         * @param contentList 要压缩的文件二进制
         * @return ZIP压缩包二进制
         */
        public static byte[] createZipByte(List<Map<String, Object>> contentList) throws IOException {
            String filePath = CommonConstant.TMP_PATH;
            String zipFileName = "tmp" + DateTools.dateToString(new Date(), DateTools.DF_COMPACT_TIME) + ".zip";
            //构建压缩文件File
            File zipFile = new File(filePath + "/" + zipFileName);
            //构建ZIP流对象
            try (ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFile))) {
                //循环处理传过来的集合
                for (Map<String, Object> map : contentList) {
                    String fileName = (String) map.get("fileName");
                    byte[] bytes = (byte[]) map.get("byte");
                    //定义ZipEntry对象
                    ZipEntry entry = new ZipEntry(fileName);
                    //赋予ZIP流对象属性
                    out.putNextEntry(entry);
                    out.write(0);
                    out.flush();
                    //关闭closeEntry
                    out.closeEntry();
                }
            }
            return file2byte(zipFile);
        }
    
        /**
         * 将文件File转换成byte数组
         *
         * @param tradeFile
         * @return
         */
        private static byte[] file2byte(File tradeFile) throws IOException {
            byte[] buffer = null;
            try (FileInputStream fis = new FileInputStream(tradeFile);
                 ByteArrayOutputStream bos = new ByteArrayOutputStream()) {
                byte[] b = new byte[1024];
                int n;
                while ((n = fis.read(b)) != -1) {
                    bos.write(b, 0, n);
                }
                buffer = bos.toByteArray();
            }
            Files.delete(tradeFile.toPath());
            return buffer;
        }
    }
    
    展开全文
  • Linux下的zip压缩解压缩文件夹

    万次阅读 2017-12-15 13:35:47
    实例:压缩服务器上当前目录的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前目录 unzip filename.zip ============================ 另:有些服务器没有安装zip包执行不了zip...



    实例:压缩服务器上当前目录的内容为xxx.zip文件


    zip -r xxx.zip ./*


    解压zip文件到当前目录


    unzip filename.zip


    ============================


    另:有些服务器没有安装zip包执行不了zip命令,但基本上都可以用tar命令的,实例如下:


     


    tar -zcvf /home/zdzlibs.tar.gz /home/zdz/java/zdzlibs/
    ============================


    linux zip命令


    zip -r myfile.zip ./*
    将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.


    2.unzip
    unzip -o -d /home/sunny myfile.zip
    把myfile.zip文件解压到 /home/sunny/
    -o:不提示的情况下覆盖文件;
    -d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下;


    3.其他
    zip -d myfile.zip smart.txt
    删除压缩文件中smart.txt文件
    zip -m myfile.zip ./rpm_info.txt
    向压缩文件中myfile.zip中添加rpm_info.txt文件
    -------------------------------------------------------------------------------


    要使用 zip 来压缩文件,在 shell 提示下键入下面的命令:


    zip -r filename.zip filesdir
     


    在这个例子里,filename.zip 代表你创建的文件,filesdir 代表你想放置新 zip 文件的目录。-r 选项指定你想递归地(recursively)包括所有包括在 filesdir 目录中的文件。


    要抽取 zip 文件的内容,键入以下命令:


    unzip filename.zip
     


    你可以使用 zip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:


    zip -r filename.zip file1 file2 file3 /usr/work/school 
     


    上面的命令把 file1、file2、 file3、以及 /usr/work/school 目录的内容(假设这个目录存在)压缩起来,然后放入 filename.zip 文件中。


     


    tar 命令详解


      -c: 建立压缩档案


      -x:解压


      -t:查看内容


      -r:向压缩归档文件末尾追加文件


      -u:更新原压缩包中的文件


      这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。


      -c: 建立压缩档案


      -x:解压


      -t:查看内容


      -r:向压缩归档文件末尾追加文件


      -u:更新原压缩包中的文件


      下面的参数-f是必须的


      -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。


      # tar -cf all.tar *.jpg


      这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。


      # tar -rf all.tar *.gif


      这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。


      # tar -uf all.tar logo.gif


      这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。


      # tar -tf all.tar


      这条命令是列出all.tar包中所有文件,-t是列出文件的意思


      # tar -xf all.tar


      这条命令是解出all.tar包中所有文件,-t是解开的意思


      压缩


      tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg


      tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz


      tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2


      tar –cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z


      rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux


      zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux


      解压


      tar –xvf file.tar //解压 tar包


      tar -xzvf file.tar.gz //解压tar.gz


      tar -xjvf file.tar.bz2 //解压 tar.bz2


      tar –xZvf file.tar.Z //解压tar.Z


      unrar e file.rar //解压rar


      unzip file.zip //解压zip


      总结


      1、*.tar 用 tar –xvf 解压


      2、*.gz 用 gzip -d或者gunzip 解压


      3、*.tar.gz和*.tgz 用 tar –xzf 解压


      4、*.bz2 用 bzip2 -d或者用bunzip2 解压


      5、*.tar.bz2用tar –xjf 解压


      6、*.Z 用 uncompress 解压


      7、*.tar.Z 用tar –xZf 解压


      8、*.rar 用 unrar e解压


      9、*.zip 用 unzip 解压
    展开全文
  • 源码(VSS 2005) 博文链接:https://hipeace87.iteye.com/blog/305162
  • 本文实例讲述了python3实现的zip格式压缩文件夹操作。分享给大家供大家参考,具体如下: 思路:先把第一级目录中的文件进行遍历,如果是文件,则把它连同当前路径一起加入result(list),如果是子目录,则在整个...
  • 【Python】将文件夹压缩zip

    万次阅读 多人点赞 2019-06-24 15:14:21
    先创建zip文件,然后遍历读取文件夹中文件,依次塞进zip文件中,即完成压缩。 例如,要将testDir文件夹压缩成test.zip,并存放在同级目录。 实现代码如下: #!/usr/local/bin/python3 import zipfile import os ...
  • 主要介绍了使用java API实现zip递归压缩文件夹及解压,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • 文件夹压缩zip文件

    千次阅读 2020-01-18 20:19:02
    * Description: 将文件夹压缩zip文件,该范例重点关注资源关闭的顺序 * 在开启了资源后,就要按照打开的顺序,依次相反地关闭资源。 */ public class ZipFile { private static Logger log = LogManager.getLogger...
  • // npm install zip-local var zipper = require("zip-local"); zipper.sync.zip("./assets1").compress().save("./assets1.zip"); zipper.sync.zip("./assets2").compress().save("./assets2.zip");
  • Linux 压缩(打包)文件夹 tar/zip

    万次阅读 多人点赞 2017-04-10 14:58:31
    tar 压缩方法: tar -zcvf /home/xahot.tar.gz /xahot tar -zcvf 打包后生成的文件名全路径 要打包的目录 ...压缩当前的文件夹 zip -r ./xahot.zip ./* -r表示递归 zip [参数] [打包后的文件名]
  • ZIP文件和文件夹的解压缩,只许一个函数就搞定。VC++6.0编写,好用。 还有测试源文件,以及借助的最初的源文件。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 99,506
精华内容 39,802
关键字:

压缩文件夹是空的zip