精华内容
下载资源
问答
  • 本文实例讲述了PHP实现将多个文件压缩成zip格式并下载到本地的方法。分享给大家供大家参考,具体如下: 废话不多说,直接上代码 //这里需要注意该目录是否存在,并且有创建的权限 $zipname = 'path/test.zip' //这...
  • 把文件压缩成zip,并重新命名,这里只需要修改main里面文件位置,运行main进行测试。测试成功之后,只需要调用方法即可。
  • 主要为大家详细介绍了Android实现文件或文件夹压缩成.zip格式压缩包,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Python3将文件压缩成zip格式

    千次阅读 2020-02-12 10:26:15
    例如我这里将 upload_load.py 文件压缩成upload_load.zip ,运行代码,在指定目的下就会生成:upload_load.zip 文件 #压缩文件 import time,zipfile class zip: def get_zip(self,files,zip_name): zp=zipfile....

    例如我这里将 upload_load.py 文件压缩成 upload_load.zip ,运行代码,在指定目的下就会生成:upload_load.zip 文件

    #压缩文件
    import time,zipfile
    class zip:
        def get_zip(self,files,zip_name):
            zp=zipfile.ZipFile(zip_name,'w', zipfile.ZIP_DEFLATED)
            for file in files:
                zp.write(file)
            zp.close()
            time.sleep(5)
            print('压缩完成')
    
    if __name__ == '__main__':
        z=zip()
        # 文件的位置,多个文件用“,”隔开
        files=['upload_file.py']
        # 压缩包路径及名字
        zip_file = 'upload_file.zip'
        z.get_zip(files,zip_file)

    效果图:

    展开全文
  • 放在把程序放在一个目录下面,需要压缩的文件也要放在同目录下面,然后在cmd窗口中也要到同样的目录下面输入:“gzip 文件名” 即可
  • // 用于将数据压缩成Zip文件格式 zos = new ZipOutputStream(baos); String[] keylist = key.split(","); for (String ossfile : keylist) { String type=ossfile.substring(0, ossfile.indexOf("*")); String name...
    package com.wei.common.web.api;
    
    import com.aliyun.oss.OSSClient;
    import com.aliyun.oss.model.OSSObject;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.servlet.http.HttpServletResponse;
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.net.URLEncoder;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;
    
    import static org.springframework.util.ObjectUtils.isEmpty;
    
    @Api(description = "文件下载-相关接口")
    @Slf4j
    @RestController
    @RequestMapping("/test/filedownload")
    public class Test {
    
        @Autowired
        private OSSClient ossClient;
    
        /**
         * 参考:阿里云(oss)官网api地址
         * https://help.aliyun.com/product/31815.html
         */
    
        @ApiOperation(value = "文件压缩下载", httpMethod = "GET", notes = "文件压缩下载")
        @RequestMapping(value = "zipDownload")
        public void zipDownload(HttpServletResponse response){
            // 设置强制下载不打开
            response.setContentType("application/force-download");
            ZipOutputStream zos = null;
            BufferedInputStream bis = null;
            BufferedOutputStream out = null;
            byte[] buffer = new byte[100 * 1024];
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            try {
                String key = "376058d3dfc338c555cf308f8a2deb52.jpg*图片测试.jpg,d41d8cd98f00b204e9800998ecf8427e.docx*excel测试.xlsx,";
                if(!isEmpty(key)){
                    String zipName = "压缩包名称.zip";
                    // 用于将数据压缩成Zip文件格式
                    zos = new ZipOutputStream(baos);
                    String[] keylist = key.split(",");
                    for (String ossfile : keylist) {
                        String type=ossfile.substring(0, ossfile.indexOf("*"));
                        String name=ossfile.substring(type.length()+1, ossfile.length());
                        //bucketName需改为自己的bucketName
                        OSSObject ossObject = ossClient.getObject("bucketName", type);
                        bis = new BufferedInputStream(ossObject.getObjectContent());
                        zos.putNextEntry(new ZipEntry(name));
                        int i = bis.read(buffer);
                        // 向压缩文件中输出数据
                        while(i != -1){
                            zos.write(buffer, 0, i);
                            i = bis.read(buffer);
                        }
                        zos.closeEntry();
                    }
                    // 设置文件名
                    response.addHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(zipName , "UTF-8"));
                    out=new BufferedOutputStream(response.getOutputStream());
                    out.write(baos.toByteArray());
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                //关闭流
                if(zos != null){
                    try {
                        zos.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }if(bis != null){
                    try {
                        bis.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if(out != null){
                    try {
                        out.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
    

    pom参考:

    <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
        <version>3.4.2</version>
    </dependency>
    

    //工作随记,如若有误,感谢指正。

    展开全文
  • 主要介绍了Vue -- webpack 项目自动打包压缩成zip文件的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 将文件夹压缩成zip文件

    千次阅读 2020-01-18 20:19:02
    * Description: 将文件夹压缩成zip文件,该范例重点关注资源关闭的顺序 * 在开启了资源后,就要按照打开的顺序,依次相反地关闭资源。 */ public class ZipFile { private static Logger log = LogManager.getLogger...

    一 代码

    package ZipFile;
    
    import org.apache.commons.io.FileUtils;
    import org.apache.commons.lang.StringUtils;
    import org.apache.log4j.LogManager;
    import org.apache.log4j.Logger;
    import java.io.InputStream;
    import java.io.*;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipOutputStream;
    
    /**
    * Copyright (C), 2020-2020, XXX有限公司
    * FileName: ZipFile
    * Author:   cakin
    * Date:     2020/1/18
    * Description: 将文件夹压缩成zip文件,该范例重点关注资源关闭的顺序
    * 在开启了资源后,就要按照打开的顺序,依次相反地关闭资源。
    */
    public class ZipFile {
        private static Logger log = LogManager.getLogger(ZipFile.class);
    
        public static void main( String[] args ) {
            String filePath = "F:\\Javatest" + File.separator + "tempTest"; // 代表一个文件夹
            String zipPath = "F:\\Javatest" + File.separator + "tempTest.zip"; // 代表一个压缩文件
            zipMutiFile(filePath, zipPath);
        }
    
        public static void zipMutiFile( String filePath, String zipPath ) {
            // 文件夹为空
            if (StringUtils.isEmpty(filePath)) {
                log.error("filePath is null");
                return;
            }
    
            // 文件名为空
            if (StringUtils.isEmpty(zipPath)) {
                log.error("zipPath is null");
                return;
            }
            InputStream input = null;
            File file = new File(filePath); // 要被压缩的文件夹
            File zipFile = new File(zipPath); // 压缩后的文件
            ZipOutputStream zipOut = null; // 该类实现了以ZIP文件格式写入文件的输出流过滤器。 包括对压缩和未压缩条目的支持。
            try {
                zipOut = new ZipOutputStream(FileUtils.openOutputStream(zipFile));   // 1 申请的资源
                if (file.isDirectory()) {
                    File[] files = file.listFiles();
                    if (files != null) {
                        for (File tempFile : files) {
                            input = FileUtils.openInputStream(tempFile);  // 2 如果是两个文件,会两次申请 FileInputStream 资源
                            System.out.println(file.getName() + File.separator + tempFile.getName());
                            // ZipEntry:表示zip文件条目   http://www.matools.com/api/java8
                            // putNextEntry:开始编写新的ZIP文件条目,并将流定位到条目数据的开头。
                            zipOut.putNextEntry(new ZipEntry(file.getName() + File.separator + tempFile.getName()));
                            int temp;
                            while ((temp = input.read()) != -1) {
                                System.out.println(temp);
                                // write将一个字节写入压缩的输出流。 该方法将阻塞直到该字节被写入。
                                zipOut.write(temp);
                            }
                            // 要对每一个input都close()
                            // 这里不用判断input是否为空,因为openInputStream要么抛出一个异常,要么返回一个实例
                            try {
                                System.out.println("关闭2处的FileInputStream资源");
                                input.close();
                                input = null;
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    if (input != null) {
                        System.out.println("这个地方是保护关闭2处的FileInputStream资源,一般不会走到这里");
                        input.close();
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    if (zipOut != null) {
                        try {
                            zipOut.close();
                            System.out.println("关闭1处的zipOut资源");
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
    }

    二 准备两个文件,内容如下

    三 测试结果

    tempTest\1.txt
    49
    50
    51
    52
    53
    54
    55
    56
    57
    关闭2处的FileInputStream资源
    tempTest\2.txt
    97
    98
    99
    100
    101
    102
    103
    关闭2处的FileInputStream资源
    关闭1处的zipOut资源

    四 说明

    在开启了资源后,就要按照打开的顺序,依次相反地关闭资源。

     

    展开全文
  • 测试生成json格式的数据测试生成json格式的数测试生成json格式的数测试生成json格式的数测试生成json格式的数测试生成json格式的数
  • python 实现文件的批量压缩为.zip格式+.zip格式文件的解析python 实现文件的批量压缩为.zip格式Python解析.zip文件的常见函数 python 实现文件的批量压缩为.zip格式 绪论: zipfile模块是python里用来做zip格式编码...

    python 实现文件的批量压缩为.zip格式+.zip格式文件的解析

    python 实现文件的批量压缩为.zip格式

    绪论:

    zipfile模块是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的.zip格式,所以这个模块使用频率也是比较高的。

    zipfile里有两个常用的class, 分别是ZipFileZipInfo。其中,ZipFile用来创建和读取zip文件,而ZipInfo是存储关于.zip文件中每个文件的信息。

    通过Python实现文件的批量压缩——具体操作:

    1. 创建zip压缩对像

    官方语法:

    class zipfile.ZipFile(file, mode=’r’, compression=ZIP_STORED, allowZip64=True)
    

    参数说明:

    • compressPathName:生成的.zip压缩文件的绝对路径。
    • mode:指示打开zip文件的模式。默认值为’r’,表示读已经存在的zip文件,也可以为’w’或’a’。

    备注:mode的三种取值情况:
    mode=‘r’,表示读已经存在的zip文件;
    mode=‘w’,表示新建一个zip文档或覆盖一个已经存在的zip文档;
    mode=‘a’,表示将数据附加到一个现存的zip文档中。

    • compression:表示在写zip文档时使用的压缩方法,它的值可以是zipfile. ZIP_STORED 或zipfile. ZIP_DEFLATED。如果要操作的zip文件大小超过2G,应该将allowZip64设置为True。

    使用范例:

    zip_file = zipfile.ZipFile(compressPathName, 'w', zipfile.ZIP_DEFLATED)   # 创建的压缩对象用于执行后续操作
    

    2. 将文件写入zip压缩文件

    # (1)将文件直接写入压缩文件——生成的.zip压缩文件包含多层目录
    zip_file.write(filepath)   
    # (2)将文件打包成一个文件夹进行压缩——生成的.zip压缩文件不存在多层目录,仅在一个指定文件夹dstdir下
    zip_file.write(filepath,dstdir+filename)   
    

    3. 关闭zip对象

    zip_file.close()
    

    批量压缩文件——完整代码:

    import os
    import zipfile
    import time
    
    # 准备压缩的目标文件所在的文件夹路径
    file_dir = r'/Users/edz/Documents/train_xml/'
    # 新生成的压缩文件.zip的存放路径
    compressPathName = file_dir + 'train_xml_1402.zip'
    
    # (1)创建zip压缩对像
    zip_file = zipfile.ZipFile(compressPathName, 'w', zipfile.ZIP_DEFLATED)
    for file in os.listdir(file_dir):
        if file.endswith('.xml'):
            file_path = os.path.join(file_dir,file)    # 会返回压缩包内所有文件名的列表。
            zip_file.write(file_path, file) # (2)将文件写入zip压缩文件——正常压缩,不出现多层目录
            # zip_file.write(file_path) # (2)将文件写入zip压缩文件——直接压缩,出现多层目录
    zip_file.close()  # (3)关闭zip对象
    time.sleep(5)
    print('压缩完成')
    
    

    Python解析.zip文件的常见函数

    # 读入的.zip格式文件的绝对路径
    zip_name = r'/Users/edz/Desktop/未命名文件夹/train_xml_1045.zip'
    # 创建zip压缩对像,只读模式
    zip_file = zipfile.ZipFile(zip_name, 'r')   # zip_file存放准备解析的.zip文件
    

    对于上述创建的zip压缩对象,即:zip_file还提供了如下常用的方法和属性:

    • zip_file.getinfo(name)——获取.zip文档内指定文件(如:name为指定的文件名称)的信息。返回一个zipfile.ZipInfo对象,它包括文件的详细信息。
    • zip_file.infolist()——获取.zip文档内所有文件的信息,返回一个zipfile.ZipInfo的列表。
    • zip_file.namelist()——获取zip文档内所有文件的名称列表。
    • zip_file.extract(member[, path[, pwd]])—— 将zip文档内的指定文件解压到当前目录。参数member指定要解压的文件名称或对应的ZipInfo对象;参数path指定了解析文件保存的文件夹;
    • zip_file.extractall([path[, members[, pwd]]])——解压zip文档中的所有文件到当前目录。参数members的默认值为zip文档内的所有文件名称列表,也可以自己设置,选择要解压的文件名称。
    • zip_file.printdir()——将zip文档内的信息打印到控制台上。
    • zip_file.setpassword(pwd)——设置zip文档的密码。
    • zip_file.read(name[, pwd])——获取zip文档内指定文件的二进制数据。

    下面的例子演示了.read()的使用,zip文档内包括一个duoduo.txt的文本文件,使用read()方法读取其二进制数据,然后保存到/Users/edz/Desktop/未命名文件夹/duoduo.txt。

    import zipfile, os
    zipFile = zipfile.ZipFile(os.path.join(os.getcwd(), 'duoduo.zip'))  # os.getcwd() 方法用于返回当前工作目录
    data = zipFile.read('duoduo.txt')
    # (lambda f, d: (f.write(d), f.close()))(open(r'd:/duoduo.txt', 'wb'), data)  #一行语句就完成了写文件操作。仔细琢磨哦~_~
    with open(r'/Users/edz/Desktop/未命名文件夹/duoduo.txt','wb') as f:
        for d in data:
            f.write(d)
    zipFile.close()
    
    • zip_file.write(filename[, arcname[, compress_type]])——将指定文件添加到zip文档中。filename为文件路径,arcname为添加到zip文档之后保存的名称, 参数compress_type表示压缩方法,它的值可以是zipfile. ZIP_STORED 或zipfile. ZIP_DEFLATED。下面的例子演示了如何创建一个zip文档,并将文件/Users/edz/Desktop/test.doc添加到压缩文档/Users/edz/Desktop/未命名文件夹/train_xml_1045.zip当中。
    import zipfile, os
    zipFile = zipfile.ZipFile(r'/Users/edz/Desktop/未命名文件夹/train_xml_1045.zip', 'w')  # 必须以'w'格式读入
    zipFile.write(r'/Users/edz/Desktop/test.doc', '保存的名字', zipfile.ZIP_DEFLATED)
    zipFile.close()
    
    • ZipFile.writestr(zinfo_or_arcname, bytes)——writestr()支持将二进制数据直接写入到压缩文档。
    展开全文
  • 主要为大家详细介绍了java实现批量下载、将多文件打包成zip格式下载,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Linux下将文件夹压缩成.zip命令

    千次阅读 2021-02-05 15:42:44
    zip -r  fileName.zip 文件夹名 -r //第归处理子文件夹
  • JAVA-阿里云OSS文件下载并将文件压缩ZIP格式保存-附件资源
  • 在企业开发过程中经常会遇到文件的压缩与解压,虽然网上很多流行的压缩文件格式都是RAR的,但是由于RAR不是一个开放的标准,因此ZIP成了更多人的选择。如果你不想自己开发的话可以选择开源的项目,比如SharpZipLib...
  • import zipfile zipf = zipfile.ZipFile(zippath,'w') # 在路径中创建一个zip对象 # zippath:zip文件全路径,例:D:\Users\XXX\Desktop\arcgis\filename.zip ... # addedfilepath:将要压缩的文...
  • Linux下以存储方式压缩成zip文件

    千次阅读 2018-04-17 11:30:03
    制作Android开机动画文件时,文件bootanimation.zip压缩模式需为存储模式。如果不是存储模式,开机界面将会出现黑屏的情况,无法正常播放。压缩命令如下:zip -r -0 bootanimation.zip part0 part1 desc.txt-r:压缩...
  • java实现压缩和压缩zip格式文件的功能,网络上看到的,觉得不错上传出来,供大家一起共同分享学习。
  • 可以破解简单的密码,复杂的话费的时间很久很久,而且电脑的性能要好哦
  • java 中压缩ZIP格式源码,仅供参考。
  • java实现Excel压缩成Zip导出

    千次阅读 2017-01-08 14:22:43
    1 概述 在web项目中常见的一种场景就是将文件...笔者今天分享将Excel导出后并压缩成zip包响应到浏览器端,希望对大家有所帮助。 2 实现思路 使用AEAI DP创建样例工程export_demo,创建测试数据表employee,
  • 使用jxl导出的xls文件,格式不兼容office 2013,兼容WPS、office 2007 合并单元格使用mergeCells(a,b,c,d)方法:a.单元格的列号,b.单元格的行号,c.从单元格[a,b]起,向下合并的列数,d.从单元格[a,b]起,向下合并...
  • java生成一个XML文件,并且将该文件压缩成ZIP格式后再写到硬盘上
  • zip压缩方法,为了代码简练,笔者只保留了dynamic部分的解压缩,而把store和fixed两种压缩格式压缩函数拿掉了,CRC校验部分的代码也拿掉了,需要的同学请根据GZIP的源代码自行加上。
  • java控制指定路径下的文件夹压缩成zip格式。 java将zip压缩包解压成为文件夹。直接使用io流进行操作,不需借助其他jar包
  • zip 命令通过zip命令可以将目录或者文件压缩成扩展名为“.zip”的压缩文件。 语法:zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]参数: -f 仅将源目录下的发生变更的文件压缩...
  • Android端zip压缩与解压,目前暂时只做zip格式支持,基于Zip4j (http://www.lingala.net/zip4j/)进行扩展工具类,支持对单个文件,多个文件以及文件夹进行压缩,对压缩文件解压到到指定目录,支持压缩解压使用密码...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 114,483
精华内容 45,793
关键字:

如何压缩成zip格式