描述:
实现zip的各种功能。
语法:
zip(zipfile:encoding,passowrd; path, files)
备注:
ZipCli外部库函数,外部库的使用请参考《外部库使用指南》。
该函数可实现zip的各种功能,操作zip格式的压缩文件。
选项:
| 
   @u  | 
  
   解压。  | 
 
| 
   @a  | 
  
   追加,对已经存在的压缩文件中增加新的文件。  | 
 
| 
   @d  | 
  
   删除,删除压缩文件内的指定文件。  | 
 
| 
   @n  | 
  
   只处理本级目录的文件,不递归子目录。  | 
 
| 
   @f  | 
  
   列出压缩包内的文件名。  | 
 
| 
   @p  | 
  
   列出压缩包内的目录名。  | 
 
参数:
| 
   zipfile  | 
  
   压缩文件或文件对象。  | 
 
| 
   encoding  | 
  
   字符编码,缺省为utf-8。  | 
 
| 
   password  | 
  
   密码,可省略  | 
 
| 
   path  | 
  
   要压缩的文件所在根目录,省略或为null时表示为zipfile所在的目录。 压缩时,存在files参数且path省略,参数后的符号“,”不可省略; 解压时,path表示解压输出文件的路径,若为空则解压输出到zipfile所在的路径;若是相对路径,则path追加到zipfile路径;写为绝对路径时输出到指定的位置; 删除时,path指zip文件中从根路径开始的文件夹。  | 
 
| 
   files  | 
  
   文件或文件序列。文件名中可使用通配符*和?,*表示任何字符串,?表示单个字符; 使用通配符时,若要压缩的文件目录与要生成的文件目录不一致,则会将文件所在的目录一块压缩,即带绝对路径目录压缩,这种情况下使用@p选项是列出的目录名为空。  | 
 
返回值:
Boolean值或序列
示例:
| 
   
  | 
  
   A  | 
  
   
  | 
 
| 
   1  | 
  
   =zip("D:/z1.zip":"GBK","123";"D:/testData/f1","D:/testData/f1/*.xls")  | 
  
   将D:/testData/f1/目录下的所有xls文件压缩至z1.zip中,字符编码为GBK,z1.zip密码为123。  | 
 
| 
   2  | 
  
   =zip("D:/z1.zip":"GBK";,"D:/testData/f1")  | 
  
   将D:/testData/f1/目录下的所有文件压缩至z1.zip中,字符编码为GBK 参数path省略,但占位符“,”不可省略。  | 
 
| 
   3  | 
  
   =zip(file("D:/z1.zip");,"D:/testData/f1")  | 
  
   zipfile参数为文件对象时,将D:/testData/f1/目录下的所有文件压缩至z1.zip中。  | 
 
| 
   4  | 
  
   =zip("D:/z4.zip";"D:/testData/f1","*")  | 
  
   将D:/testData/f1/目录下的所有文件压缩至z4.zip中。  | 
 
| 
   5  | 
  
   =zip("D:/z5.zip";"D:/testData/f1")  | 
  
   将D:/testData/f1/目录下的所有文件压缩至z5.zip中。  | 
 
| 
   6  | 
  
   =zip("D:/z6.zip";,"D:/testData/f1/?ity.txt")  | 
  
   使用通配符? ,将D:/testData/f1/目录下的文件名匹配?ity.txt的文件压缩至z6.zip中。  | 
 
| 
   7  | 
  
   =["f2/*.txt","f2/*.csv","f2/*.xls"]  | 
  
   
  | 
 
| 
   8  | 
  
   =zip("D:/z8.zip";"D:/testData",A7)  | 
  
   files参数为序列,将D:/testData/f2 目录下的txt、csv、xls文件压缩至z8.zip中。  | 
 
| 
   9  | 
  
   =[file("*.xlsx"),file("*.txt"),file("*.json")]  | 
  
   
  | 
 
| 
   10  | 
  
   =zip("D:/z9.zip";"D:/testData",A9)  | 
  
   files参数为文件对象序列,将D:/testData/ 目录下的xlsx、txt、json文件压缩至z9.zip中。  | 
 
| 
   11  | 
  
   =zip("D:/ZipTest/z11.zip";"testData/f1")  | 
  
   参数path为相对路径,相对于参数zipfile的路径,即将D:/ZipTest/testData/f1/下的文件压缩至z11.zip中。  | 
 
| 
   12  | 
  
   =zip@u("D:/z1.zip","123";"D:/zfu/z1")  | 
  
   将密码为123的z1.zip文件解压至D:/zfu/z1目录下。  | 
 
| 
   13  | 
  
   =zip@u("D:/z1.zip","123")  | 
  
   将密码为123的z1.zip文件解压至D:/目录下。  | 
 
| 
   14  | 
  
   =zip@a("D:/z2.zip";,"D:/testData/f_a/")  | 
  
   将D:/testData/f_a/目录追加到z2.zip中。  | 
 
| 
   15  | 
  
   =zip@a("D:/z2.zip";,"D:/testData/f_a","*.txt")  | 
  
   将D:/testData/f_a目录下的所有txt文件追加到z2.zip中,f_a目录下的子目录中存在txt文件也一并追加。  | 
 
| 
   16  | 
  
   =zip@an("D:/z2.zip";,"D:/testData/f_a","*.txt")  | 
  
   将D:/testData/f_a目录下的所有txt文件追加到z2.zip中,f_a目录下的子目录不进行处理。  | 
 
| 
   17  | 
  
   =zip@d("D:/z2.zip";"/","C*.txt")  | 
  
   将z2.zip中文件名匹配C*.txt的文件删除。  | 
 
| 
   18  | 
  
   =zip@d("D:/z2.zip";"/",["*.txt","*.xls","*.csv"])  | 
  
   删除z2.zip中所有的txt、xls、csv文件。  | 
 
| 
   19  | 
  
   =zip@n("D:/z13.zip";,"D:/testData/")  | 
  
   将D:/testData/下的文件压缩至z13.zip,使用@n选项表示不递归子目录,即z13.zip中不包含D:/testData/子目录下的文件。  | 
 
| 
   20  | 
  
   =zip@f("D:/z1.zip")  | 
  
   列出压缩包内的文件名,不需要密码: 
  | 
 
| 
   21  | 
  
   =zip@f("D:/z2.zip";"zdata",["*.txt","*.xls"])  | 
  
   列出压缩包中zdata目录下的所有txt和xls,从根目录下开始显示: 
  | 
 
| 
   22  | 
  
   =zip@p("D:/z2.zip")  | 
  
   列出压缩包内的文件目录: 
  | 
 
| 
   23  | 
  
   =zip@p("D:/z14.zip")  | 
  
   列出多层目录名称: 
  |