文件夹目录打包压缩下载

来源:互联网 发布:php 判断域名 编辑:程序博客网 时间:2024/03/29 02:13

/**
* 压缩整个文件夹中的所有文件,生成指定名称的zip压缩包
* @param filepath 文件所在目录
* @param zippath 压缩后zip文件名称
* @param dirFlag zip文件中第一层是否包含一级目录,true包含;false没有
* 2015年6月9日
*/

“`

public static void zipMultiFile(String filepath ,String zippath, boolean dirFlag) {    try {        File file = new File(filepath);// 要被压缩的文件夹        File zipFile = new File(zippath);        ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile));        if(file.isDirectory()){            File[] files = file.listFiles();            for(File fileSec:files){                if(dirFlag){                    recursionZip(zipOut, fileSec, file.getName() + File.separator);                }else{                    recursionZip(zipOut, fileSec, "");                }            }        }        zipOut.close();    } catch (Exception e) {        e.printStackTrace();    }}private static void recursionZip(ZipOutputStream zipOut, File file, String baseDir) throws Exception{    if(file.isDirectory()){        File[] files = file.listFiles();        for(File fileSec:files){            recursionZip(zipOut, fileSec, baseDir + file.getName() + File.separator);        }    }else{        byte[] buf = new byte[1024];        InputStream input = new FileInputStream(file);        zipOut.putNextEntry(new ZipEntry(baseDir + file.getName()));        int len;        while((len = input.read(buf)) != -1){            zipOut.write(buf, 0, len);        }        input.close();    }}

“` 来源:http://www.codingyun.com/article/81.html#

遇到的问题:
FileOutputStream fos = new FileOutputStream(zipFile);

zipFile这个参数是一个压缩文件路径,我做的时候,放入文件夹路径,多次报错。原因是Stream是操作字节流。
下面是下载方法,参数是 文件,文件类型
/**

 * @param file 文件 * @param fileType 文件类型 * 2015年6月9日 */
1 0