20210714_删除zip压缩文件中的某个文件的方法,不需要解压

代码如下:依赖jar包自行下载

zip4j-2.8.0.jar

/**
     * 删除指定文件名称的文件
     *
     * @param file
     *            源文件路径
     * @param removeDir
     *            需要删除的文件名称
     * @throws Exception
     *             异常信息
     */
    public static void removeDirFromZipArchive(File file, String removeDir) throws Exception {
        ZipFile zipFile = new ZipFile(file);
        // 遍历压缩文件中所有的FileHeader, 将指定删除目录下的子文件名保存起来
        @SuppressWarnings("unchecked")
        List<FileHeader> headersList = zipFile.getFileHeaders();
        ArrayList<String> removeHeaderNames = new ArrayList<String>();
        for (FileHeader subHeader : headersList) {
            String subHeaderName = subHeader.getFileName();
            if (subHeaderName.indexOf(removeDir) != -1) {
                LOG.info("需要删除的文件名称为:" + subHeaderName);
                removeHeaderNames.add(subHeaderName);
            }
        }
        // 遍历删除指定目录下的所有子文件(所有子文件删除完毕,该目录自动删除)
        for (String headerNameString : removeHeaderNames) {
            zipFile.removeFile(headerNameString);
        }
    }

 

posted @ 2021-07-14 11:38  奥力给joy  阅读(1896)  评论(0)    收藏  举报