1.压缩文件
/**
* 压缩文件
* @param directory 准备要被压缩的文件
* @param dest 被压缩到指定的目录
*/
public static void zip(File directory,File dest) throws Exception{
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(dest));
zip(directory,out,directory.getName());
out.close();
}
/**
* 压缩文件底层代码
*/
private static void zip(File directory, ZipOutputStream out,String prefix) throws Exception{
if(directory.isDirectory()){
//文件夹以/结尾
out.putNextEntry(new ZipEntry(prefix+"/"));
}
//判断是否是空目录
if(FileUtils.isEmptyDirectory(directory)) {
out.closeEntry();
return;
}
//遍历目录下的所有内容
File[] files = directory.listFiles();
//如果是空
for(File f : files){
if(f.isFile()){
//判断是不是文件,是文件就压入entry,也要加上父路径,文件没有分隔符