如何在 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
以上是我在CSDN上找到的一些相关介绍,但是在window运用shell有时会出错,比如当文件处于打开状态,或者文件夹下为空的时候都会报错,我曾经试着查看retval的返回值来寻找它的规律,但是好象没有什么规律啊,请各位大侠帮帮忙一起来看看吧。谢谢拉。
WinZIP 8.0肯定支持把文件压缩保存到几张软盘上,这样可以解决大体积ZIP文件无法在软盘上保存的问题。运行WinZIP之后,单击工具栏中的“New”按钮,程序弹出“New Archive”对话框。在“File Name“文本框中输入需创建的压缩文件名称以及软盘盘符。单击OK按钮,再单击工具栏上的Add设置对话框。选择需要压缩的文件,在“Multiple Disk Spanning”下拉文本框中设置分卷压缩方式。Automatic项自动检测软盘可用空间,并进行分卷压缩文件的创建,一般选择此项。单击“Add”按钮,程序开始压缩,当软盘满了时,WinZIP会提示插入下一张软盘。
温馨提示:答案为网友推荐,仅供参考