/**
* @方法名称 compress
* @功能描述 递归压缩
* @作者 wrf
* @创建时间 2018/7/9 15:24
* @Param [sourceFile, zos, name, keepDirStructure]
* @Return void
* @Thorws
*/
private static void compress(File sourceFile, ZipOutputStream zos, String name, boolean keepDirStructure) {
byte[] buf = new byte[BUFFER_SIZE];
try {
if (sourceFile.isFile()) {
zos.putNextEntry(new ZipEntry(name));
int len;
FileInputStream inputStream = new FileInputStream(sourceFile);
while ((len = inputStream.read(buf)) != -1) {
zos.write(buf, 0, len);
}
inputStream.close();
} else {
File[] listFiles = sourceFile.listFiles();
if (listFiles == null || listFiles.length == 0) {
if (keepDirStructure) {
zos.putNextEntry(new ZipEntry(name + File.separator));
}
} else {
for (File file : listFiles) {
if (keepDirStructure) {
compress(file, zos, name + File.separator + file.getName(), keepDirStructure);
} else {
compress(file, zos, file.getName(), keepDirStructure);
}
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
递归压缩文件。。
最新推荐文章于 2024-05-01 23:03:25 发布