说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB如何在 VB 中使用 Winzip 来压缩文件?

HTML文档下载 WORD文档下载 PDF文档下载
VB如何在 VB 中使用 Winzip 来压缩文件?
版本:VB6 / VB5 / VB4-32

现在压缩软件一大堆,但是如果您想在 VB 程式中做文件压缩的功能,您知道要怎么做吗?

我不懂一些烦琐的压缩理论,但是我懂得利用现有的压缩软件来替我达到我想要的功能!

在这个例子中,我要使用 Winzip 来做,所以,如果您想用下面的示例来做练习的话,先決条件就是您的电脑中一定要有安装 Winzip 才行!

压缩文件 (加入文件):

语法:winzip[32].exe [-min] action [options] filename[.zip] files

参数说明:

-min 最小化
指定 Winzip 执行时为最小化。如果您要使用 -min 这个参数,它必须是命令列参数的第一个参数。

action 方法

-a add 加入文件
-f freshen 重新整理目前文件
-u update 更新文件
-m move 移动文件

options 选项

Directories 文件夹选项
-r Recurse Directories 含文件夹內內容。
-p Save Extra Directory Info 储存其他的文件夹信息。
method 決定压缩的方法选项
-ex eXtra 最大 (最慢)
-en Normal 一般 (默认值)
-ef Fast 快速
-es Super fast 最快速
-e0 no compression 不压缩
其他选项
-s 设定密码 密码必须使用双引号括起来。
例如:-s "Secret Password",不过要注意大小写是不同的!
-hs   包含符合条件的隐藏及系统文件。

filename.zip 压缩文件名
指定压缩后的文件名,要注意的是必须是全路径文件名 (含磁碟機代号及文件夹)。


files 所有原始文件
一个或多个文件,每一个文件写在獨立的一行,可以使用萬用字元,例如:*.bak。


解压缩文件:

语法:winzip[32].exe -e [options] filename[.zip] directory

参数说明:

-e 表示解压缩
是必要的参数!

options 选项

-o Overwrite existing files
without prompting 取代同名的文件。
-j Junk pathnames 跳過舊文件。
除非指定 -J 这个参数,否則会使用原本的文件夹名稱。
-s 设定密码 密码必须使用双引号括起来。
例如:-s "Secret Password",不过要注意大小写是不同的!
-hs   包含符合条件的隐藏及系统文件。

filename.zip 压缩文件名
指定压缩后的文件名,要注意的是必须是全路径文件名 (含磁碟機代号及文件夹)。

directory 文件夹
解压缩后的文件存放的文件夹。如果文件夹不存在便会自动建立。


注意事项:

※非常重要:永远使用全路径文件名 。
※若希望执行 Winzip 时是最小化,要使用 -min 这个参数,它必须是命令列参数的第一个参数。
※Winzip 內建只支援 zip 及 unzip 二种操作模式。
※若是長文件名的话,必须使用双引号括起来。
※在设定文件时,前面及最后的字元不可空白,也不可有空白行!
※在命令列中的方法及选项参数,至少要用一个以上的空白分隔。

※WinZip 可以用来配合 cc:Mail 压缩文件:
更改 WMAIL.INI 中的 [cc:Mail] section 的 compress= 这一行
指定 Winzip 的完整路径,并跟随着 "-a %1 @%2" 参数
例如:如果 Winzip 安装在 c:\winzip,則 compress= 这一行必须改成
compress=c:\winzip\winzip.exe -a %1 @%2


示例:
Private Sub Command1_Click()
Dim wzipexe As String ' winzip 执行文件的位置
Dim wsource As String ' 原始文件 (压缩前)
Dim wtarget As String ' 目地文件 (压缩后)
Dim wcmd As String ' Shell 指令
Dim retval As Double ' Shell 指令传回值

' Shell 指令
wzipexe = "C:\program files\winzip\WINzip32" ' winzip 执行文件的位置
wtarget = "d:\1.zip" ' 原始文件 (压缩前)
wsource = "d:\1.mbd" ' 目地文件 (压缩后)
wcmd = wzipexe & " -a " & wtarget & " " & wsource ' Shell 指令
retval = Shell(wcmd, 6) ' Shell 指令传回值


'上面的一大串可写成
'retval = Shell("C:\program files\winzip\WINzip32 -a _
'd:\1.zip d:\1.mdb", 6)
End Sub
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘