压缩文件,支持中文

/**
 * Created by pailiao on 2016/1/8.
 * 用的是org.apache.tools.ant  ant包
 */
public class ZipUtils {

    /**
     *
     * @param inFile 要压缩的文件 /storage/emulated/0/Dabaixiong/125_天安门_160106
     * @param outFile 输出的压缩文件
     */
public static void zipFiles(File inFile,File outFile){
    Project pro = new Project();
    Zip zip = new Zip();
    zip.setEncoding("UTF-8");
    zip.setBasedir(inFile.getParentFile());
    //获取压缩的文件夹名
    String strInFile=String.valueOf(inFile).substring(String.valueOf(inFile).lastIndexOf("/")+1);
    //将压缩的文件夹名里的中文转换成*号
    strInFile= strInFile.replaceAll("[\u4e00-\u9fa5]+", "*");
    zip.setIncludes(new StringBuilder().append(strInFile).append("/**").toString());
    zip.setDestFile(outFile);
    zip.setProject(pro);
    zip.execute();
}

    /**
     *
     * @param listFiles 要压缩的文件夹列表 针对于同一目录下的多个文件夹
     * @param outFile  输出的压缩文件
     */
    public static void zipListFiles(ArrayList<File> listFiles,File outFile){
        Project pro = new Project();
        Zip zip = new Zip();
        zip.setEncoding("UTF-8");
        //获取当前父节点文件夹名
        zip.setBasedir(listFiles.get(0).getParentFile());
        String includes="";
        for(File file:listFiles){
            //获取压缩的文件夹名
                String strInFile;
                strInFile=String.valueOf(file).substring(String.valueOf(file)
            .lastIndexOf("/")+1);
            //将压缩的文件夹名里的中文转换成*号
            strInFile= strInFile.replaceAll("[\u4e00-\u9fa5]+", "*");
            includes=new StringBuilder(includes).append(strInFile).append("/**").append(",").toString();
        }
        includes=includes.substring(0,includes.length()-1);
        zip.setIncludes(includes);
        zip.setDestFile(outFile);
        zip.setProject(pro);
        zip.execute();
    }

    /**
     * 解压
     * @param fileName
     * @param destFilePath
     * @throws Exception
     */
    public static void unZip(String fileName, String destFilePath)
            throws Exception {
        Project project = new Project();
        Expand ex = new Expand();
        ex.setSrc(new File(fileName));
        ex.setDest(new File(destFilePath));
        ex.setProject(project);
        ex.setOverwrite(true);
        ex.execute();
    }

    /***
     * 复制文件
     * @param src
     * @param destDir
     * @throws Exception
     */
    public static void copyToDir(File src , File destDir)throws Exception{
        Project project = new Project();
        Copy cp = new Copy();
        cp.setFile(src);
        cp.setTodir(destDir);
        cp.setOverwrite(true);
        cp.setProject(project);
        cp.execute();
    }


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值