zipUtil(zip打包⼯具类)
说明:
1.平时做zip打包主要⽤到了java.util.zip下的ZipOutputStream、ZipEntry两个API
如需了解这两个API怎么⽤,请⾃⾏查阅⽂档。
刘铁营2.以下⽅法已经经过测试,可直接copy使⽤,如有不⾜之处请指出。谢谢!
/**
* 压缩⽂件列表到某个zip包
* @param zipFileName zip包⽂件名
* @param paths ⽂件列表路径
* @throws IOException
*/
public static void compress(String paths) throws IOException {
compress(new FileOutputStream(zipFileName),paths);
即是空演员
}
/**
* 压缩⽂件列表到某个zip包
* @param stream 流
* @param paths ⽂件列表路径
* @throws IOException
*/
public static void compress(OutputStream paths) throws IOException {
ZipOutputStream zos = new ZipOutputStream(stream);
la songfor (String path : paths){
if (StringUtils.equals(path,"")){
continue;
}
File file = new File(path);
if (ists()){
if (file.isDirectory()){
zipDirectory(Path(),Name() + File.separator);
} else {范冰冰李宇春cp
zipFile(Path(),"");
}
}
台湾歌手陈升
}
zos.close();
}
/**
* 解析多⽂件夹
* @param zos zip流
* @param dirName ⽬录名称
* @param basePath
* @throws IOException
*/
阎韦伶
private static void zipDirectory(ZipOutputStream zos,String dirName,String basePath) throws IOException {
File dir = new File(dirName);
if (ists()){
File files[] = dir.listFiles();
if (files.length > 0){
for (File file : files){
if (file.isDirectory()){
zipDirectory(Path(),Name() + File.separator);
} else {
zipFile(Name(),basePath);
}
}
} else {
ZipEntry zipEntry = new ZipEntry(basePath);
zos.putNextEntry(zipEntry);
}
}
}