JAVA调用外部安装7-Zip压缩和解压zip文件

时间:2023-12-24 13:29:13

1.首先在本地安装7-Zip(下载链接:https://www.7-zip.org/)
2.调用7-Zip压缩.zip文件:

/**
     * 生成.zip压缩文件
     * @param filePath 需要压缩的文件路径
     * @param zipFileName 生成压缩文件的文件名(全路径)
     * @throws Exception
     */
public static void generateZipFile(String filePath, String zipFileName) throws Exception {
        //zipToolPath 是本地7-Zip软件的安装路径
        String zipToolPath = "C:/Program Files/7-Zip/7z.exe";
zipToolPath = zipToolPath .replaceAll(" ", "\" \"");//所有空格都替换成带有双引号的空格
        String exec = zipToolPath + " a " + zipFileName + " -r *.*";
        File file = new File(filePath);
        Runtime.getRuntime().exec(exec,null,file);
        //执行成功后在ZipFileName路径下可以找到相应的压缩文件
}

3.调用7-Zip解压.zip文件:

/**
*解压.zip文件
 * @param zipFilePath 需要解压的文件路径
 * @param targetFilePath 解压后文件保存目录
* @param logPath log文件的路径
 * @throws Exception
 */
public static void unZipFile(String zipFilePath, String targetFilePath,String logPath) throws Exception {
        //zipToolPath 是本地7-Zip软件的安装路径
        String zipToolPath = "C:/Program Files/7-Zip/7z.exe";
zipToolPath = zipToolPath .replaceAll(" ", "\" \"");//所有空格都替换成带有双引号的空格
        String exec = zipToolPath + " x " + zipFilePath + " -o"+targetFilePath +"-aoa -bse1 >"+ logPath;//将解压过程写入log文件中
        Runtime.getRuntime().exec(exec);
        //执行成功后在targetFilePath路径下可以找到解压后的文件
 }