代码如下:依赖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);
}
}
|