1. 概况
最近因为公司小伙伴的要求,写了一个可以压缩不同目录下的多个文件到指定路径下的小项目,现在分享出来,希望可以帮到更多的人。
※ 项目中有几个方法的代码参考了《使用java.util.zip包实现根据文件目录控制文件的压缩与解压》1;其余的部分都是自己码哒;
※ 此项目仅用于学习交流,请不要用于任何形式的商用用途,谢谢呢;
2. 支持功能
- 压缩不同位置的文件和目录到同一个压缩文件中;
- 去除多余目录;
- 支持多线程多任务并行压缩(实现了功能模块);
3. 使用说明
3.1 命令行格式
java ZipFile -inputFileName inputFileName -zipFileName zipFileName -srcPath srcPath [-removedPath removedPath]
java ZipFile.java -inputFileName inputFileName -zipFileName zipFileName -srcPath srcPath [-removedPath removedPath]
标记 | 值 | 说明 | 示例 |
---|---|---|---|
-inputFileName | inputFileName | 需压缩的文件目录集合 | input_file_1.txt |
-zipFileName | zipFileName | 压缩包名 | himea_2.zip |
-srcPath | srcPath | 输出路径(建议绝对路径) | D:\ZipFile\src |
-removedPath | removedPath | 最后一个移除目录名(可选) | ZipFile |
如果有如下路径:C:\disk d\softwares\AppStore\Default
假设:removedPath = softwares
结果:程序会移除softerwares(含)之前的所有路径名,即这些目录不会出现在压缩文件包里面;
3.2 实例展示
1)压缩文件目录
C:\Disk_d\ZipFile\src\test_folder_3\ROAME_327334_22069229.jpg
C:\Disk_d\ZipFile\src\test_folder_3\test_folder_4
2)命令行
java ZipFile.java -inputFileName input_file_1.txt -zipFileName himea_2.zip -srcPath C:\Disk_d\ZipFile\src [-removedPath test_folder_3]
3)视频教程
视频地址:【教程】指定多目录多文件压缩(Java)
4. 代码
代码请见:Github - ZipFile Version 1.0