ZipFile
ZipFile类型用于压缩和解压文件,采用的压缩格式为ZIP。
方法
名称 | 说明 |
Create | 创建压缩文件。 示例 Dim zip As New zipFilezip.Create("c:\data\foxtable.zip") |
Open | 打开压缩文件。 示例 Dim
zip As New
zipFile |
Close | 关闭压缩文件,ZipFile使用结束后,应该执行此方法。 |
AddFile | 添加文件。 语法: AddFile(FileName) FileName:
要压缩的文件名,含路径。 示例一: 示例二: Dim zip As New zipFileDim zFile As String = "c:\data\backup.zip" Dim NewName As String NewName = Date.Today.Month & "." & Date.Today.Day & ".Table" If FileSys.FileExists(zfile) Then '如果压缩文件已经存在 zip.Open(zFile) '则打开 Else zip.Create(zFile) '否则创建 End If zip.AddFile(ProjectFile, NewName) zip.Close() 示例三: 可以给要压缩的文件指定路径,例如备份项目文件以及项目文件子目录Images下的所有文件: Dim zip As New zipFilezip.Create("c:\data\backup.zip") zip.AddFile(ProjectFile) For Each File As String In FileSys.GetFiles(ProjectPath & "Images") zip.AddFile(File, "Images\" & FileSys.GetName(File)) Next zip.Close()
上面的代码,压缩时如果不给Images子目录下的文件指定路径“Images”,那么这些文件将和项目文件一样,处于压缩文件的根目录,导致解压的时候无法准确还原路径。 |
AddFolder | 添加目录,此目录下的所有文件将被压缩。
语法: 示例一: 压缩c:\publish目录下的所有文件: Dim zip As New zipFilezip.Create("c:\data\backup.zip") zip.AddFolder("c:\publish") zip.Close() 示例二: 压缩c:\publish目录下的gif文件: Dim zip As New zipFilezip.Create("c:\data\backup.zip") zip.AddFolder("c:\publish", "*.gif") zip.Close() 示例三: 压缩c:\publish目录下的所有文件,但不包括子目录下的文件: Dim zip As New zipFilezip.Create("c:\data\backup.zip") zip.AddFolder("c:\publish", "*.*", False) zip.Close() |
Extract | 解压指定的文件。 语法: Extract(FileName) 如果不指定NewFileName参数,则解压到压缩文件所在目录。 示例: Dim zip As New zipFilezip.Open("c:\data\backup.zip") zip.Extract("Foxtable.exe") zip.Extract("Images/Chart.ico") zip.Extract("Images/Bold.ico", "c:\data\Images\Bold.ico") zip.Close() 上面代码,将foxtable.exe和chart.ico两个文件解压到压缩文件所在的目录c:\data,尽管在压缩文件中,Chart.Ico位于子目录Images之下,而Bold.ico将解压到c:\data\Images目录下。 |
ExtractAll | 解压所有文件到指定的目录。 示例: 将所有文件解压到目录c:\test:Dim zip As New zipFile zip.Open("c:\data\backup.zip") zip.ExtractAll("c:\test") zip.Close() |
Contains | 判断压缩文件中是否存在指定的文件。 示例: Dim zip As New zipFileDim zFile As String = "c:\data\backup.zip" Dim NewName As String NewName = Date.Today.Month & "." & Date.Today.Day & ".Table" If FileSys.FileExists(zfile) Then zip.Open(zFile) Else zip.Create(zFile) End If If zip.Contains(NewName) = False Then zip.AddFile(ProjectFile, NewName) End If zip.Close()
|
Remove | 从压缩文件中删除指定的文件。 示例: Dim zip As New zipFilezip.Open("c:\data\backup.zip") zip.Remove("foxtable.exe") zip.Close() |
属性
名称 | 说明 |
Count | 整数型,返回压缩文件中文件的个数。 |
UseUtf8Encoding | 逻辑型,压缩包中的文件名和注释是否采用UTF8格式编码。 |
Files | 返回一个字符集合,包括压缩文件中所有文件名。 示例 Dim zip As New zipFilezip.Open("c:\data\backup.zip") For Each File As String In zip.Files Output.Show(File) Next zip.Close() |
Password | 字符型,返回或设置压缩文件的目录。 示例一 压缩的时候设置密码: Dim zip As New zipFilezip.Create("c:\data\backup.zip") zip.Password = "mypassword" zip.AddFolder("c:\publish") zip.Close() 解压的时候设置密码: Dim zip As New zipFilezip.Open("c:\data\backup.zip") zip.Password = "mypassword" zip.ExtractAll("c:\data\backup") zip.Close() 实例二 不同的文件可以设置不同的密码: Dim zip As New zipFilezip.Create("c:\data\backup.zip") zip.Password = "mypassword" zip.AddFile("c:\publish\foxtable.exe") zip.Password = "yourpassword" zip.AddFile("c:\publish\config.dat") zip.Close() 解压的时候必须为各文件设置对应的密码: Dim zip As New zipFilezip.Open("c:\data\backup.zip") zip.Password = "mypassword" zip.Extract("foxtable.exe") zip.Password = "yourpassword" zip.Extract("config.dat") zip.Close() |