精华内容
下载资源
问答
  • 批量压缩文件脚本

    2014-01-26 14:37:06
    批量压缩文件脚本 方便批量压缩文件,请自行修改脚本里的路径,其实我是混分的,这个脚本适合我一样的小白用
  • Java 批量压缩文件,真正压缩多级文件

    实际上,有很多相关的博客,但我测试了很多都 会出现两个问题,为避免新手踩坑而写

    问题:

    1、压缩完成后出现没有关闭流的现象(循环分别创建流对象未关闭导致)

    2、压缩多级目录失效,只压缩部分文件(递归导致创建出多个压缩输出流对象)

     

    解决如下:
     

    
        /**
         * 压缩多文件
         *
         * @param files    多个文件
         * @param basePath 压缩文件内的相对路径
         * @param zipFile  压缩文件
         * @throws IOException 异常
         */
        public static void zip(File[] files, String basePath, File zipFile) throws IOException {
            if (files == null || files.length == 0) return;
    
            FileOutputStream fos = new FileOutputStream(zipFile);
            ZipOutputStream zos = new ZipOutputStream(fos);
            try {
                procesZip(zos, files, basePath);
            } finally {
                closeStream(zos, fos); //关闭压缩流,输出流
            }
    
        }
    
        /**
         * 处理压缩,该部分抽离出来主要是为了保证 压缩输出流 不会多创建
         *
         * @param zos      压缩输出流
         * @param files    文件数组
         * @param basePath 压缩文件内的相对路径
         * @throws IOException 异常
         */
        private static void procesZip(ZipOutputStream zos, File[] files, String basePath) throws IOException {
            int count;// 数目
            final byte[] buffer = new byte[2048]; //缓冲
            for (File file : files) {
                if (file.isDirectory()) {
                    procesZip(zos, file.listFiles(), basePath + File.separator + file.getName());// 递归
                    continue;
                }
    
                zos.putNextEntry(new ZipEntry(basePath + File.separator + file.getName()));// 加入
                FileInputStream fis = new FileInputStream(file);// 输入
    
                // 读取
                while ((count = fis.read(buffer, 0, buffer.length)) != -1) {
                    zos.write(buffer, 0, count);// 写入
                }
    
                zos.closeEntry();// 释放资源
                fis.close(); //关闭输入流
            }
        }
    
    
    
        /**
         * 关闭流
         *
         * @param closeables 不定长数组 流对象
         */
        public static void closeStream(Closeable... closeables) {
            for (Closeable closeable : closeables) {
                if (closeable != null) {
                    try {
                        closeable.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    

     

    展开全文
  • /**** 文件压缩打包*@paramzipPath 文件夹路径*@paramsourcePath 压缩文件夹名称*@paramzipName 要压缩文件名称*@paramfileNmae 被压缩文件名称集合*@return*/public static boolean createCardImgZip(String ...

    /***

    * 文件压缩打包

    *@paramzipPath 文件夹路径

    *@paramsourcePath 压缩文件夹名称

    *@paramzipName 要压缩的文件名称

    *@paramfileNmae 被压缩的文件名称集合

    *@return

    */

    public static boolean createCardImgZip(String zipPath, String sourcePath, String zipName, ListfileNmae) {

    LOG.info("压缩:start!");boolean result = false;

    File sourceFile= newFile(sourcePath);

    FileInputStream fis= null;

    BufferedInputStream bis= null;

    FileOutputStream fos= null;

    ZipOutputStream zos= null;if (sourceFile.exists() == false) {

    LOG.info("压缩:File catalog:" + sourcePath + "not exist!");

    System.out.println("File catalog:" + sourcePath + "not exist!");

    }else{try{if (!newFile(zipPath).exists()) {newFile(zipPath).mkdirs();

    }

    File zipFile= new File(zipPath + "/" + zipName + ".zip");if(zipFile.exists()) {

    zipFile.delete();

    LOG.info(zipPath+ "压缩:Catalog File: " + zipName + ".zip" + "pack file.");//System.out.println(zipPath + "Catalog File: " + zipName + ".zip" + "pack file.");

    } else{

    File[] sourceFiles=sourceFile.listFiles();if (null == sourceFiles || sourceFiles.length < 1) {

    LOG.info("压缩:File Catalog:" + sourcePath + "nothing in there,don't hava to compress!");

    System.out.println("压缩:File Catalog:" + sourcePath + "nothing in there,don't hava to compress!");

    }else{

    fos= newFileOutputStream(zipFile);

    zos= new ZipOutputStream(newBufferedOutputStream(fos));byte[] bufs = new byte[1024 * 10];for (int i = 0; i < sourceFiles.length; i++) {//create .zip and put pictures in

    for(CreditResults item : fileNmae) {

    System.out.println(sourceFiles[i].getName()+ "---" +item.getPdfName());if(sourceFiles[i].getName().equals(item.getPdfName())) {

    ZipEntry zipEntry= newZipEntry(sourceFiles[i].getName());

    zos.putNextEntry(zipEntry);//read documents and put them in the zip

    fis = newFileInputStream(sourceFiles[i]);

    bis= new BufferedInputStream(fis, 1024 * 10);int read = 0;while ((read = bis.read(bufs, 0, 1024 * 10)) != -1) {

    zos.write(bufs,0, read);

    }

    }

    }

    }

    LOG.info("压缩:zip successfu");

    result= true;

    }

    }

    }catch(FileNotFoundException e) {

    e.printStackTrace();throw newRuntimeException(e);

    }catch(IOException e) {

    e.printStackTrace();throw newRuntimeException(e);

    }finally{try{if (null !=bis)

    bis.close();if (null !=zos)

    zos.close();

    }catch(IOException e) {

    e.printStackTrace();throw newRuntimeException(e);

    }

    }

    }returnresult;

    }

    展开全文
  • java课程设计之批量压缩文件,附带源代码,仅供参考。
  • ::此脚本在批量压缩文件过程中,会因为文件名中有空格报错,所以一定要使得被压缩文件名字中无空格 echo 7z批量压缩 ::设置环境变量,将压缩软件目录复制到此处 set PATH=%PATH%;D:\Program Files\7-Zip cd /d %~...
    @echo off
    ::请用notepad+++编辑脚本,并将编码方式保存为ANSI格式
    ::此脚本在批量压缩文件过程中,会因为文件名中有空格报错,所以一定要使得被压缩文件名字中无空格
    echo 7z批量压缩
    ::设置环境变量,将压缩软件目录复制到此处
    set PATH=%PATH%;D:\Program Files\7-Zip
    
    
    cd /d %~dp0
    :: 打包文件目录
    echo 请输入压缩路径:
    set /p paths=
    cd %paths%
    setlocal enabledelayedexpansion
    
    for /f "delims=." %%i in ('DIR /B') do (
    echo %%i
    7z a  %%i.zip %%i
    )
    
    pause

     

     
    展开全文
  • 这个是用vs2008 MFC 写的一个很简单的程序,用于批量压缩文件(格式为7z). 其实只能算是 7zip 的另一个外壳罢了. 使用方法: 用鼠标拖拉文件到程序的"任务列表"中,点击"开始压缩"即可. 更加详细的说明请点击程序的 ...
  • try { if (log.isDebugEnabled()) { log.debug("压缩开始:待压缩文件(夹)为 " + inputFile); } zip(inputFile, out, ""); } catch (IOException e) { log.error("压缩失败"); } finally { out.close(); if (log....

    package com.app.common.util;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.IOException;

    import java.io.InputStream;

    import java.util.Enumeration;

    import org.apache.commons.logging.Log;

    import org.apache.commons.logging.LogFactory;

    import org.apache.tools.zip.ZipEntry;

    import org.apache.tools.zip.ZipFile;

    import org.apache.tools.zip.ZipOutputStream;

    public class ZipUtil {

    private static ZipUtil instance = new ZipUtil();

    private static final int BUFFEREDSIZE = 1024;

    private static Log log = LogFactory.getLog(ZipUtil.class);

    private ZipUtil() {

    }

    public static ZipUtil getInstance() {

    return instance;

    }

    public static void zip(String inputFilename, String zipFilename)

    throws IOException {

    zip(new File(inputFilename), zipFilename);

    }

    public static void zip(File inputFile, String zipFilename)

    throws IOException {

    ZipOutputStream out = new ZipOutputStream(new FileOutputStream(

    zipFilename));

    out.setEncoding("GBK");

    try {

    if (log.isDebugEnabled()) {

    log.debug("压缩开始:待压缩文件(夹)为 " + inputFile);

    }

    zip(inputFile, out, "");

    } catch (IOException e) {

    log.error("压缩失败");

    } finally {

    out.close();

    if (log.isDebugEnabled()) {

    log.debug("压缩成功");

    }

    }

    }

    private static void zip(File inputFile, ZipOutputStream out, String base)

    throws IOException {

    if (inputFile.isDirectory()) {

    if (inputFile.listFiles().length == 0) {

    ZipEntry zipEntry = new ZipEntry(base + inputFile.getName()

    + "/");

    out.putNextEntry(zipEntry);

    out.closeEntry();

    } else {

    base += inputFile.getName() + inputFile.separator;

    for (File f : inputFile.listFiles()) {

    zip(f, out, base);

    }

    }

    } else {

    ZipEntry zipEntry = new ZipEntry(base + inputFile.getName());

    out.putNextEntry(zipEntry);

    FileInputStream in = new FileInputStream(inputFile);

    try {

    int c;

    byte[] by = new byte[BUFFEREDSIZE];

    while ((c = in.read(by)) != -1) {

    out.write(by, 0, c);

    }

    } catch (IOException e) {

    throw e;

    } finally {

    in.close();

    }

    }

    }

    public static void multiZip(String[] inputFilelist, String zipFilename)

    throws IOException {

    File[] files = new File[inputFilelist.length];

    for (int i = 0; i < inputFilelist.length; i++) {

    files[i] = new File(inputFilelist[i]);

    }

    multiZip(files, zipFilename);

    }

    public static void multiZip(File[] files, String zipFilename)

    throws IOException {

    ZipOutputStream out = new ZipOutputStream(new FileOutputStream(

    zipFilename));

    out.setEncoding("GBK");

    try {

    if (log.isDebugEnabled()) {

    log.debug("压缩开始:待压缩文件(夹)共 " + files.length + "个");

    }

    for (File f : files) {

    zip(f, out, "");

    }

    } catch (Exception e) {

    log.error("压缩失败");

    } finally {

    out.close();

    if (log.isDebugEnabled()) {

    log.debug("压缩成功");

    }

    }

    }

    }

    展开全文
  • PS篇-批量压缩图片● ● 在工作中,我们经常需要把整理好的文档和图片进行上传,但是往往需要上传的系统对于上传的文件大小是有要求的,文件大小超过限定大小会造成上传失败,那这个问题怎么解决呢?其实之前我们...
  • Python 批量压缩文件

    2020-05-01 16:20:45
    批量压缩当前文件夹中的文件,每个文件都单独压缩,压缩格式为7z,使用脚本之前要先安装7zip,并把安装路径添加进环境变量 import os path = os.getcwd() fileNames = os.listdir(path) for fileName in fileNames...
  • import java.util.ArrayList;import java.util.List;import java.util.zip.*;import java.io.*;public class Test {/*** 压缩一个文件到一个zip* @param in 输入的文件* @param out 输出的zip名...
  • 博主:实际上,有很多相关的博客,但我测试了很多都 会出现两个问题,为避免新手踩坑而写问题:1、压缩完成.../*** 压缩多文件** @param files 多个文件* @param basePath 压缩文件内的相对路径* @param zipFile 压缩...
  • Java批量压缩文件

    2019-10-09 03:43:13
    * 文件压缩打包 * @param zipPath 文件夹路径 * @param sourcePath 压缩文件夹名称 * @param zipName 要压缩文件名称 * @param fileNmae 被压缩文件名称集合 * @return */ public stati...
  • C# 用zip,批量压缩文件,并打包下载,无需产生临时文件 using ICSharpCode.SharpZipLib.Checksums; using ICSharpCode.SharpZipLib.Zip; private void DownLoadZipFile() { DataTable dt = this.sqlca....
  • 文件开始: 如下写作。。。 #!/bin/bash date="2015-11-" echo "开始压缩....." for day in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 do ...
  • itext生成pdf,批量压缩文件

    千次阅读 2013-10-31 15:12:56
    最近使用itext生成pdf,并涉及批量压缩文件 maven的pom.xml文件中引入itext文件  com.itextpdf  itext-asian  5.2.0      com.itextpdf  itextpdf
  • //以下代码可以实现从指定目录批量压缩文件  public static string GetFoldAll(string Path)  {  string str = "";  DirectoryInfo thisOne = new DirectoryInfo(Path);  Dire
  • 先找到你安装的Winrar的路径,然后将此路径加入到电脑环境变量Path中去; 有的人喜欢用zip压缩,需要下载对zip命令的支持...将桌面上的文件夹 a 中的文件及子文件夹压缩到 a 文件夹下面; winrar a -r -ep1 b.zi...
  • python 结合好压软件 实现批量压缩文件或文件夹、并同时添加压缩密码 ** 先说说写本博客的缘由,也是吐血的经验教训: 由于一些原因需要为大量文件资料添加压缩密码,而好压软件只能实现单个文件压缩,不能进行批量...
  • 可以修改源码,不想改也没问题),将要压缩的文件放进去,同时解压缩本资源包里的文件(FileToZip.jar和FileToZip.bat)到D盘下,双击FileToZip.bat,会自动生成一个vtpk_zip文件夹,压缩文件都会批量生成于此。...
  • 针对于目录下文件数量较多较大繁琐的情况下,在有限的电脑内存中无法将整个目录的文件压缩成一个压缩包,且目前没有便捷化的分段压缩工具, 因此,使用python代码实现,分段压缩成多个子包,后续如果有时间将进行...
  • 主要功能:按照文件名,批量压缩(这里演示为:将当前目录下所有的.txt结尾的文件都压缩,且所的压缩文件名均为原文件名加.tar) 知识点:tar的使用 文件名的截取 tar使用方法: tar [OPTION...] [FILE]... ...
  • 批量压缩文件并下载

    2018-01-15 10:49:50
    //获取需批量下载的文件 List,Object>> imageList = commonService.getList(CheAndCleSql.getImageList(map)); if(imageList.size() > 0){ for(int i = 0; i(); i++){ Map,Object> imageMap = ...
  • linux 下批量压缩文件

    2015-03-11 11:50:58
    一堆eps文件要将每个文件单独压缩成一个文件,比如a.eps , b.eps, c.eps 压缩成 a.zip ,b.zip ,c.zip for EPS in `ls *.eps`; do zip $EPS.zip $EPS; ZIP=`echo $EPS|awk -F"." {'print $1'}`; mv $EPS....
  • 首先得到文件列表 使用 list -1 注意是1 不是l 然后是用一个循环内包装zip代码 1 #!/bin/bash 2 3 list=`ls -1` 4 for var in $list 5 do 6 echo $var 7 zip -r $var.zip $var 8 done 转载于:...
  • java post下载文件 zip批量压缩文件

    千次阅读 2018-05-16 14:21:25
    在粘一处批量压缩文件的工具类 输出流,我是创建了一个FileOutputStream(参数是响应生成的zip格式结尾的压缩包全路径)来使用的。然后就是集合File格式。 public static void writeZipFile(OutputStream ous, List...
  • #!/bin/sh filelist=$(ls) for file in $filelist do if [ -d $file ] then du -h $file /usr/local/bin/jpegoptim --strip-all --all-progressive -o...
  • //获取参数,参数为要被压缩文件url ZipOutputStream out = null; String[] arr = url.split(",");//将要被压缩多个文件utl分切成字符串数组 try { byte[] buffer = new byte[1024]; out = new ZipOutputStream(os...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,193
精华内容 1,277
关键字:

批量压缩文件