主要针对cn.hutool.core.util.ZipUtil常方法的介绍:
1 打包到当前目录
package com.gongsl.test;
import cn.hutool.core.util.ZipUtil;
import java.io.File;
/**
* @Author: gongsl
* @Date: 2021-01-02 17:55
*/
public class HutoolTest {
public static void main(String[] args) {
//将"E:\new\demo"目录下的所有内容打包到"E:\new\demo.zip"文件中
File file = ZipUtil.zip("E:\\new\\demo");
System.out.println(file.getName());//运行结果:demo.zip
}
}
//运行main方法后,就会在"E:\new"目录下多一个demo.zip压缩包
1234567891011121314151617
注意:这种方式虽然既能打包文件也能打包文件夹,但只能打包到当前目录,且打包后的压缩包的名字就是目录名,像这类的目录是"E:\new\demo",那么生成的压缩包的名字就只能是demo.zip。
2 指定打包后的文件名及保存的目录
package com.gongsl.test;
import cn.hutool.core.util.ZipUtil;
import java.io.File;
/**
* @Author: gongsl
* @Date: 2021-01-02 17:55
*/
public class HutoolTest {
public static void main(String[] args) {
//将"E:\new\demo"目录下的所有内容打包到"E:\new\test\abc.zip"文件中
File file = ZipUtil.zip("E:\\new\\demo","E:\\new\\test\\abc.zip");
System.out.println(file.getName());//运行结果:abc.zip
}
}
//运行main方法后,就会在"E:\new\test"目录下多一个abc.zip压缩包
1234567891011121314151617
注意事项:
- 这里
zip
方法的第二个参数必须为文件,不能为目录; - 这里
zip
方法的第二个参数的压缩包的名字可以和"demo"目录名相同,也可以不同; - 这里
zip
方法的第二个参数的“test”目录可以存在也可以不存在,存在的话压缩包就直接放到该目录中,不存在的话就先创建该目录,然后再把压缩包放入其中。
3 可选是否包含被打包的目录
package com.gongsl.test;
import cn.hutool.core.util.ZipUtil;
import java.io.File;
/**
* @Author: gongsl
* @Date: 2021-01-02 17:55
*/
public class HutoolTest {
public static void main(String[] args) {
//将"E:\new\demo"目录下的所有文件打包到"E:\new\test\abc.zip"文件中
File file = ZipUtil.zip("E:\\new\\demo","E:\\new\\test\\abc.zip",true);
System.out.println(file.getName());//运行结果:abc.zip
}
}
//运行main方法后,就会在"E:\new\test"目录下多一个abc.zip压缩包
1234567891011121314151617
这里调用的是带有三个参数的zip
方法,第三个参数为true的话,表示在打包的时候,会连目录一并打包进压缩包中。我们这里要打包的是"E:\new\demo"目录下的所有文件,使用第三个参数为true的zip
方法的话,当我们打开abc.zip压缩包的时候,压缩包里是包含demo目录的,进入这个目录里面后才能看到该目录下的所有文件。如果这里使用的是两个参数的zip
方法,那么当我们打开abc.zip压缩包的时候,压缩包里是不包含demo目录的,我们直接看到的就是demo目录中的所有文件。
4 选择多个文件或目录进行打包
package com.gongsl.test;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ZipUtil;
import java.io.File;
/**
* @Author: gongsl
* @Date: 2021-01-02 17:55
*/
public class HutoolTest {
public static void main(String[] args) {
//将"E:\new"目录下的多个文件及文件夹打包到"E:\new\abc.zip"文件中
File file = ZipUtil.zip(FileUtil.file("E:\\new\\abc.zip"), true,
FileUtil.file("E:\\new\\log"),
FileUtil.file("E:\\new\\b.txt"),
FileUtil.file("E:\\new\\homework"));
System.out.println(file.getName());//运行结果:abc.zip
}
}
//运行main方法后,就会在"E:\new"目录下多一个abc.zip压缩包
123456789101112131415161718192021
5 unzip方法–压缩包的解压
package com.gongsl.test;
import cn.hutool.core.util.ZipUtil;
import java.io.File;
/**
* @Author: gongsl
* @Date: 2021-01-02 17:55
*/
public class HutoolTest {
public static void main(String[] args) {
//将"E:\new\abc.zip"压缩包解压到"E:\new\test"目录下,返回值是解压到的目录
File file = ZipUtil.unzip("E:\\new\\abc.zip","E:\\new\\test");
System.out.println(file.getName());//运行结果:test
}
}
//运行main方法后,就会将abc.zip压缩包中的所有文件或文件夹解压到"E:\new\test"目录下
摘选自https://blog.csdn.net/qq_15717719/article/details/112149994
网友评论