将目录和子目录下的.7z、.7z.001、.zip、.tar.gz、tar、rar解压缩到目标路径,且保持原始路径结构
开发周期预计2-3天,文件2.zip为路径tree例子
注意:需同时支持windows、linux、macos,因此需要检测当前系统,对不同系统的7z所在位置和参数做出定义
1,解压缩扩展名为可定义,如只解压7z和7z.001,-n,默认值全部需求中的可解压类型,2,7z解压支持多进程,参数-7zPr 10 ,默认4进程;zip压缩支持多进程,参数-ziPr 8,默认值为系统核心数量的80%,3,指定输入路径 -i,必须指定4,指定输出路径 -o ,默认程序所在目录下建立output文件夹5,程序运行结束需报告解压缩累积耗时,解压缩错误需捕获7z的信息,并记录到log/unpack.log6,程序解压缩完毕进程需正常关闭,并屏幕打印解压缩完毕,文件数量、总计耗时等必要关键信息,特别注意:Ctrl+C需可正常终止程序7,程序的工作原理为先7z解压缩,边解压缩边进行zip压缩,压缩完成即刻删除临时文件,需自定义临时目录,例如e:\temp,默认值为当前程序目录的子文件夹temp8,临时目录的容量是有限的,需要预设临时目录大小,-size 0.5,单位为TB,默认值2T。在7z中设法捕获解压缩目标的容量大小,或采用其它方法,不至于超越临时目录的临界值导致崩溃,9,支持自定义zip压缩等级,-l 9为9级,最大值为9,最小值为1,默认值3级,10,python代码需要注释至傻瓜级,编写文档,描述开发逻辑、开发需求理解、开发中遇到的问题、具体程序的使用11,对于带密码的压缩包,自动适配预先指定的密码,密码为统一密码。12,对于损坏的压缩包,自动跳过,并记录到error.log。
保持上面主要需求不变的前提下,C++需要增以下需求内容:附件1.txt内描述了全部需求
Success story sharing