论坛首页
·
友情链接申请
·
申请版主
·
广告投放
·
道具中心
·
设为首页
·
收藏本站
注册
登录
搜索
标签
帮助
大学编程
»
VB/VB.NET论坛
» VB中利用Winrar进行文件压缩和解压缩(转)
‹‹ 上一主题
|
下一主题 ››
发新话题
发布投票
发布商品
发布悬赏
发布活动
发布辩论
发布视频
房屋交易信息
车票交易信息
兴趣交友信息
打印
[教程] VB中利用Winrar进行文件压缩和解压缩(转)
王懿
Coofish
Super Moderator
学以致用
帖子
424
精华
6
所在学校
南京理工大学
所属专业
机械电子工程
阅读权限
150
性别
男
来自
安徽芜湖
在线时间
94 小时
注册时间
2008-3-20
个人空间
发短消息
加为好友
当前离线
1
#
大
中
小
发表于 2008-6-5 00:53
只看该作者
VB中利用Winrar进行文件压缩和解压缩(转)
一些
数据
库
文件
(
如
Access
文件
)
在远程传输过程中可能由于文件比较大而影响传递效果。如果进行压
缩以后再传递,会减少传递时间,避免意外的发生,同时也保证了传递效果。我们在压缩文件时,最常用的压缩
工具
为
WinRar
和
Winzip
,笔者在
VB
编
程过程中利用
WinRar
工具来压缩数据库文件,并完成远程传输,十分方便,在此向大家介绍一下。用
WinZip
的方法类似。
一、
Shell
函数
Shell
函数是
VB
中的内部函数,它负责执行一个可执行文件,返回一个
Variant(Double)
,如果成功的话,代表这个
程序
的进程
ID
,若不成功,则会返回
0
。
Shell
的语法:
Shell(PathName[
,
WindowStyle])
。
PathName
为必需参数。
类型
为
String
,它指出了要执行的程序名,以及任何需要的参数或
命令
行变量,也可以包括路径名。
WindowStyle
为可选参数。
Integer
类型,指定在程序运行时窗口的样式。
WindowStyle
有以下这些值。
常量
值
描述
VbHide
0
窗口被隐藏,且焦点会移到隐式窗口。
VbNormalFocus
1
窗口具有焦点,且会还原到它原来的大小和位置。
VbMinimizedFocus
2
窗口会以一个具有焦点的图标来显示(缺省值)。
VbMaximizedFocus
3
窗口是一个具有焦点的最大化窗口。
VbNormalNoFocus
4
窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。
VbMinimizedNoFocus
6
窗口会以一个图标来显示,而当前活动的窗口仍然保持活动。
二、关于
WinRar
的用法
主要介绍以下如何在
WinRar
中用命令行来压缩和解压缩文件。
压缩:
WINRAR A [-switches]<Archive> [Files] [@File lists]
例如你想把
try.mdb
压缩到
C
盘下,可以
WINRAR A C:\try.rarC:\try.mdb
解压缩:如果带目录解压缩
WINRAR X [-switches]<Archive> [Files] [@File lists] [destionation folder\]
如果在当前目录解压缩,即解压缩时不写目录名
WINRAR E [-switches]<Archive> [Files] [@File lists] [destionation folder\]
例如你想把
try.rar
解压缩到
C
盘下,可以
WINRAR X C:\try.rarC:\try.mdb
三、一个例子
在
VB
中新建一个工程,在
Form1
中添加两个按钮
Command1
、
Command2
和
Command3
,把他们的
Caption
属性分别设为
"
压缩文件
"
、
"
解压缩文件
"
和
"
传递文件
"
。按
Command1
时把文件
try.mdb
压缩成
try.rar
。
Private SubCommand1_Click()
Dim Rarexe As String'WINRAR
执行文件的位置
Dim Source As String '
压缩前的原始文件
Dim Target As String '
压缩后的目标文件
Dim FileString as String'Shell
指令中的
字符
串
Dim Result As Long
Rarexe="C:\programfiles\winrar\winrar"
Source="C:\try.mdb"
Target="C:\try.rar"
FileString = rarexe &" a " & Target & " " & Source
Result = Shell(FileString,vbHide)
End Sub
解压的过程类似,按
Command2
可以把
try.rar
解压生成
try.mdb
。在执行了上面的压缩过程后,可以删除文件
try.mdb
,来解压缩重新生成
try.mdb
。
Private SubCommand2_Click()
Dim Rarexe As String'WINRAR
执行文件的位置
Dim Source As String '
解压缩前的原始文件
Dim Target As String '
解压缩后的目标文件
Dim FileString as String'Shell
指令中的字符串
Dim Result As Long
Rarexe="C:\programfiles\winrar\winrar"
Source="C:\try.rar"
Target="C:\try.mdb"
FileString = rarexe &" X " & Source & " " & Target
Result = Shell(FileString,vbHide)
End Sub
文件从一台
计算机
传输到另一台
计算机
前,应知道另一台
计算机
的名字,然后用
FileCopy
语句就可以了。假设要把压缩后
try.rar
传递到计算机名为
"other"
的共享目录
"want"
下。
Private SubCommand3_Click()
Dim SourceFile,DestinationFile
SourceFile="C:\try.rar " '
指定源文件名。
Destinati '
指定目的文件名。
FileCopy SourceFile,DestinationFile '
将源文件的内容复制到目的文件中。
End Sub
每个人都有自己的优点,成功的人扬长避短,失败的人"不识庐山真面目,只缘生在此山中"!
UID
318
帖子
424
精华
6
积分
2917
所在学校
南京理工大学
所属专业
机械电子工程
阅读权限
150
性别
男
来自
安徽芜湖
在线时间
94 小时
注册时间
2008-3-20
最后登录
2009-1-8
查看个人网站
查看详细资料
TOP
替身
Super Moderator
止于至善
帖子
354
精华
2
所在学校
所属专业
阅读权限
150
在线时间
80 小时
注册时间
2008-3-14
个人空间
发短消息
加为好友
当前离线
2
#
大
中
小
发表于 2008-6-5 21:54
只看该作者
呵呵 我把这个去掉了
耐得寂寞~
UID
23
帖子
354
精华
2
积分
2448
所在学校
所属专业
阅读权限
150
在线时间
80 小时
注册时间
2008-3-14
最后登录
2009-1-7
查看详细资料
TOP
王懿
Coofish
Super Moderator
学以致用
帖子
424
精华
6
所在学校
南京理工大学
所属专业
机械电子工程
阅读权限
150
性别
男
来自
安徽芜湖
在线时间
94 小时
注册时间
2008-3-20
个人空间
发短消息
加为好友
当前离线
3
#
大
中
小
发表于 2008-6-5 22:23
只看该作者
黄新燕那里能过吗?
每个人都有自己的优点,成功的人扬长避短,失败的人"不识庐山真面目,只缘生在此山中"!
UID
318
帖子
424
精华
6
积分
2917
所在学校
南京理工大学
所属专业
机械电子工程
阅读权限
150
性别
男
来自
安徽芜湖
在线时间
94 小时
注册时间
2008-3-20
最后登录
2009-1-8
查看个人网站
查看详细资料
TOP
blastar
Tech Support
帖子
59
精华
0
所在学校
所属专业
阅读权限
200
在线时间
12 小时
注册时间
2008-4-11
个人空间
发短消息
加为好友
当前离线
4
#
大
中
小
发表于 2008-6-6 10:19
只看该作者
记得 winrar好像自带一个rar.exe 是个dos版本的 还有一系列的参数 使用那个更有效率 更能节省资源
UID
10392
帖子
59
精华
0
积分
436
所在学校
所属专业
阅读权限
200
在线时间
12 小时
注册时间
2008-4-11
最后登录
2008-7-2
查看详细资料
TOP
‹‹ 上一主题
|
下一主题 ››
控制面板首页
编辑个人资料
积分记录
公众用户组
个人空间管理
升级个人空间
基本概况
流量统计
客户软件
发帖量记录
版块排行
主题排行
发帖排行
积分排行
交易排行
在线时间
管理团队