zip()

阅读(878) 标签: zip, 压缩, 解压,

描述:
 
实现zip的各种功能。

语法:
 
zip(
zipfile:encoding,passowrd; path, files)

备注:

该函数可实现zip的各种功能。

选项:

@u

解压,对压缩文件解压

@a

追加, 对已经存在的压缩文件中增加新的文件

@d

删除,对压缩文件内的指定文件删除

@n

压缩时不递归子目录,只处理本级目录的文件

@f

列出压缩包内的文件名

@p

列出压缩包内的目录名

 

参数:

zipfile

压缩文件

encoding

字符编码,缺省为utf-8

password

密码,可省略

path

要压缩的文件所在根目录,省略或为null时表示为zipfile所在的目录。

path省略时参数后的符号“,”不可省略

files

文件或文件序列。文件名中可使用通配符*?*表示任何字符串,?表示单个字符;

使用通配符时,若要压缩的文件目录与要生成的文件目录不一致,则会将文件所在的目录一块压缩,即带绝对路径目录压缩,这种情况下使用@p选项是列出的目录名为空

 

 

返回值:
压缩、追加、删除操作时返回Boolean值,其他操作时返回文件列表

示例:

 

 

A

 

 

1

=zip("D:/z1.zip":"GBK","123";,"D:/testData/f1/")

D:/testData/f1/目录下的所有文件压缩至z1.zip中,字符编码为GBKz1.zip密码为123

参数path省略,但占位符“,”不可省略

2

=zip("D:/z2.zip";,"D:/testData/f1/")

D:/testData/f1/目录下的所有文件压缩至z2.zip中,字符编码缺省为utf-8,无密码

3

=zip("D:/z4.zip";"D:/testData/f1","/*")

D:/testData/f1/目录下的所有文件压缩至z4.zip中,结果文件与A2结果相同

4

=zip("D:/z5.zip";"D:/testData/f1/")

D:/testData/f1/目录下的所有文件压缩至z5.zip中,参数files省略,结果文件与A2结果相同

5

=zip("D:/z6.zip";,"D:/testData/f1/?ity.txt")

使用通配符? ,将D:/testData/f1/目录下的文件名匹配?ity.txt的文件压缩至z6.zip

6

=zip("D:/z7.zip";,"D:/testData/f1/*.txt")

使用通配符* ,将D:/testData/f1/目录下的文件名匹配*.txt的文件压缩至z7.zip

7

=["f2/*.txt","f2/*.csv","f2/*.xls"]

 

8

=zip("D:/z8.zip";"D:/testData/",A7)

files为序列,将D:/testData/f2 目录下的txtcsvxls文件压缩至z8.zip

9

=zip("D:/ZipTest/z11.zip";"testData/f1/")

参数path为相对路径,相对于参数zipfile的路径,即将D:/ZipTest/testData/f1/下的文件压缩至z11.zip

10

=zip@u("D:/z1.zip":"GBK","123";"D:/zfu/z1")

将密码为123z1.zip文件解压至D:/zfu/z1目录下

11

=zip@a("D:/z2.zip";,"D:/testData/f_a/")

D:/testData/f_a/目录下的文件追加到z2.zip

12

=zip@d("D:/z2.zip";"f1","C*.txt")

z2.zipf1目录下的文件名匹配C*.txt的文件删除

13

=zip@n("D:/z13.zip";,"D:/testData/")

D:/testData/下的文件压缩至z13.zip,使用@u选项,不递归子目录,即不包含D:/testData/子目录下的文件。

14

=zip@f("D:/z1.zip")

列出压缩包内的文件名,不需要密码

15

=zip@p("D:/z2.zip")

列出压缩包内的文件目录

16

=zip@p("D:/z7.zip")

z7.zip通过A6格表达式,使用通配符时,要压缩的文件路径与生成文件路径不一致,此时压缩包为带多层目录的文件,使用@p列出的目录名称则为空

17

=zip("D:/testData/z15.zip";,"D:/testData/f1/*")

压缩时使用通配符,但要压缩的文件路径与生成文件路径相同时,压缩包中不会产生多层目录

18

//=zip@p("D:/testData/z15.zip")

使用@p列出目录名称

19

=zip("D:/z14.zip";,"D:/testData/")

递归子目录压缩文件,压缩包中为多层目录

20

=zip@p("D:/z14.zip")

列出多层目录名称