我在研究怎样使用7z,以及7z的极限压缩(把文件压缩到最小size)。
7z官网是 http://www.7-zip.org/
从官网下载软件安装包。安装完毕后,安装目录里面有一个 7-zip.chm 帮助文件,可以了解7z的详细的使用说明。
用命令行来执行7z的极限压缩,就是如下的命令:
C:\01_MyApp\7-Zip\7z.exe a -t7z newPack.7z "F:\14_newWork\7z\testDoc\*" -r -mx=9 -m0=LZMA2 -ms=10m -mf=on -mhc=on -mmt=on
其中,
1,C:\01_MyApp\7-Zip\7z.exe
这个是7z可执行文件的完整路径
2,a
这个表示add命令,即新建一个压缩文件,该压缩文件存放在当前目录下。还有其他的命令,例如解压缩,从压缩文件中删除一个文件,等等
3,-t7z
这个表示使用的压缩类型是7z。类似的还有 -tzip 等等。
4,newPack.7z
新建的压缩文件的名字。
5,"F:\14_newWork\7z\testDoc\*"
这个表示把该目录下的所有的文件都执行压缩操作,添加到压缩文件中。
6,-r
这个参数表示遍历所有的子目录,每个文件都执行压缩操作,添加到压缩文件中。
7,-mx=9
这个参数表示压缩等级,9级是最高等级。默认等级是5。
8,-m0=LZMA2
这个参数表示优先使用 LZMA2 算法。类似的,还可以设置第二优先 -m1=LZMA ,第三优先 -m2=BZip2 。
9,-ms=10m
这个参数表示开启固实模式,这种模式是把压缩包中的所有文件都当成一个连续数据流来看待。通常情况下,固实压缩可增加压缩比,特别是在添加大量小文件的时候。
这里除了开启固实模式,还设置了以10兆作为一个数据块。
10,-mf=on
这个参数表示开启可执行文件压缩过滤器。
11,-mhc=on
这个参数表示对压缩包的文件头也进行压缩。
12,-mmt=on
这个参数表示开启多线程,提高压缩速度。
==========================================================
解压缩的命令如下:
C:\01_MyApp\7-Zip\7z.exe x newPack.zip -oc:\Doc -aoa
其中,
1,C:\01_MyApp\7-Zip\7z.exe
这个是7z可执行文件的完整路径
2,x
这个表示解压缩,并且使得压缩包内的文件所在的目录结构保持不变。如果你希望解压缩后所有的文件都存放在同一个目录下,则使用 e 这个命令。
3,newPack.zip
这个表示压缩包的文件名。该压缩包是存放在当前目录下的。
4,-oc:\Doc
这个表示把压缩包内的文件解压缩到 c:\Doc 目录下。-o 这个参数用于指定输出目录。
5,-aoa
这个表示直接覆盖现有文件,而没有任何提示。类似的参数还有:
-aos 跳过现有文件,其不会被覆盖。
-aou 如果相同文件名的文件以存在,将自动重命名被释放的文件。举个例子,文件 file.txt 将被自动重命名为 file_1.txt。
-aot 如果相同文件名的文件以存在,将自动重命名现有的文件。举个例子,文件 file.txt 将被自动重命名为 file_1.txt。