使用Lazarus压缩/解压zip
从其它平台迁移而来 Lazarus默认已经提供了zip文件的压缩和解压功能,在Zipper单元中,不过,使用过程中还是有一些细节需要注意。 压缩 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 uses Zipper; { 使用类方法进行压缩 } //压缩单个文件 TZipper.Zip('压缩后的文件.zip', '待压缩的文件.txt'); //压缩多个文件 TZipper.Zip('压缩后的文件.zip', ['待压缩的文件1.txt', '待压缩的文件2.pdf']); { 使用实例对象进行压缩 } var zip: TZipper; zip := TZipper.Create; try //压缩单个文件 zip.ZipFile('压缩后的文件.zip', '待压缩的文件.txt'); //压缩多个文件 zip.ZipFiles('压缩后的文件.zip', ['待压缩的文件1.txt', '待压缩的文件2.pdf']); finally zip.Free; end; 以上为比较方便的使用方法,但是还存在一些问题: 以上仅限于文件名为英文的情况,若文件名为中文则会出现乱码(主要是在windows平台上,用专门的压缩/解压工具打开查看列表和解压时)。查看解决方案。 若待压缩的文件包括路径,则压缩后的文件内也会包含传参时传入的路径。查看解决方案。 另外,也可以配合FileName(压缩后的文件名)和Entries(待压缩的文件)属性使用ZipAllFiles方法;或者配合Entries(待压缩的文件)属性使用SaveToFile方法。不过,多次调用前一定要调用Clear方法,否则就会受前一次压缩操作的影响。 解压 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 uses Zipper; { 使用类方法进行解压 } //解压出全部文件 TUnZipper....