用 winrar 压缩时 将文件夹也压缩了怎办?

cccmx 2004-01-04 07:40:22
我调用winrar.exe 压缩文件 ,想把c:\ylbx\aa.dbf 压缩为 aa.exe
用以下命令: c:\ylbx\winrar.exe a -sfx aa.exe "c:\ylbx\aa.dbf"
压缩后,解压发现 压缩文件中包含文件夹"ylbx" , 不加路经有找不到 aa.dbf

应怎么解决呢?在线等待
...全文
182 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
101monster 2004-01-05
  • 打赏
  • 举报
回复
呵呵,有收获!
mmcgzs 2004-01-05
  • 打赏
  • 举报
回复
学习
rainstormmaster 2004-01-04
  • 打赏
  • 举报
回复
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] [Files] [@File lists]

  例如你想把try.mdb压缩到C盘下,可以WINRAR A C:try.rar C:try.mdb

  解压缩:如果带目录解压缩

     WINRAR X [-switches] [Files] [@File lists] [destionation folder]

     如果在当前目录解压缩,即解压缩时不写目录名

     WINRAR E [-switches] [Files] [@File lists] [destionation folder]

  例如你想把try.rar解压缩到C盘下,可以WINRAR X C:try.rar C:try.mdb

  三、一个例子
  在VB中新建一个工程,在Form1中添加两个按钮Command1、Command2和Command3,把他们的Caption属性分别设为"压缩文件"、"解压缩文件"和"传递文件"。按Command1时把文件try.mdb压缩成try.rar。
Private Sub Command1_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:program fileswinrarwinrar"

  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 Sub Command2_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:program fileswinrarwinrar"

  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 Sub Command3_Click()

  Dim SourceFile, DestinationFile

   SourceFile ="C:try.rar " ‘ 指定源文件名。

   DestinationFile = "otherwanttry.rar" ‘ 指定目的文件名。

   FileCopy SourceFile, DestinationFile ‘ 将源文件的内容复制到目的文件中。

  End Sub
  怎么样,十分简单吧?





cccmx 2004-01-04
  • 打赏
  • 举报
回复
我的应该怎么写
踏平扶桑 2004-01-04
  • 打赏
  • 举报
回复
RAR 3.30 beta 4 版权 (c) 1993-2003 为 Eugene Roshal 所有 20 Dec 2003
注册给 Registered

用法: rar <命令> -<开关 1> -<开关 N> <档案文件> <文件...>
<@列表文件...> <释放路径\>

<命令>
a 添加文件到档案文件中
c 添加档案文件注释
cf 添加文件注释
cw 写入档案文件注释到文件中
d 从档案文件中删除文件
e 释放文件到当前目录
f 刷新档案文件内的文件
i[par]=<str> 在档案文件内查找字符串
k 锁定档案文件
l[t,b] 列表档案文件 [技术支持信息, 梗概信息]
m[f] 移动到档案文件 [仅文件]
p 打印文件到标准输出设备
r 修复档案文件
rc 重建丢失的卷
rn 重命名已归档的文件
rr[N] 添加数据恢复记录
rv[N] 创建恢复卷
s[名称|-] 转换档案文件为自释放格式
t 测试档案文件
u 更新档案文件内的文件
v[t,b] 列表档案文件详细资料 [技术支持信息, 梗概信息]
x 以完整路径释放文件

<开关>
- 停止开关扫描
ac 压缩或释放后清除「存档」属性
ad 追加档案文件名到目标路径
ag[格式] 使用当前日期做为档案文件名
ao 添加带有「存档」属性的文件
ap<路径> 设置档案文件内部路径
as 同步档案文件内容
av 设置用户身份校验 (仅用于注册版)
av- 禁止用户身份校验检查
c- 禁止注释显示
cfg- 禁止读取配置
cl 转换名字为小写字母
cu 转换名字为大写字母
df 归档后删除来源文件
dh 打开共享文件
ds 禁止固定档案文件的名称排序
e<属性> 设置要排除的文件属性
ed 不添加空目录
en 不要放置 '档案文件末尾' 块
ep 排除路径
ep1 排除基准目录
ep2 扩充为完整路径
f 刷新文件
hp[密码] 加密文件数据和标头
idp 禁止百分比显示
ieml[地址] 通过电子邮件发送档案文件
ierr 发送所有讯息至标准错误输出设备
ilog[文件名] 记录错误讯息到文件 (只在注册版中可用)
inul 禁止所有讯息
ioff 完成操作后关闭计算机
isnd 允许声音提示
k 锁定档案文件
kb 保留损坏的文件
m<0..5> 设置压缩等级 (0-存储...3-默认...5-最大)
mc<参数> 设置高级压缩参数
md<大小> 以 KB 为单位的字典大小 (64,128,256,512,1024,2048,4096 或 A-G)
ms[ext;ext] 指定要保存的文件类型
o+ 覆盖已存在的文件
o- 不覆盖已存在的文件
os 保存 NTFS 数据流
ow 保存或还原所有者和组
p[口令] 设置口令
p- 不询问口令
r 包含所有子目录
r0 只包含与通配符匹配的所有子目录
rr[N] 添加数据恢复记录
rv[N] 创建恢复卷
s[<N>,v[-],e] 创建固定格式档案文件
s- 禁止创建固定格式档案文件
sfx[名字] 创建自释放档案文件
si[名字] 从标准输入设备 (stdin) 读取数据
t 归档后测试文件
ta<日期> 处理在 YYYYMMDDHHMMSS 格式中 <指定日期> 后修改的文件
tb<日期> 处理在 YYYYMMDDHHMMSS 格式中 <指定日期> 前修改的文件
tk 保持原有的档案文件时间
tl 将档案文件时间设为最新文件的时间
tn<时间> 处理比 <指定时间> 更新的文件
to<时间> 处理比 <指定时间> 旧的文件
ts<m,c,a>[N] 保存或恢复文件时间属性 (修改、创建及访问时间)
u 更新文件
v 创建分卷压缩时自动检测大小或列出所有的分卷
v<大小>[k,b] 创建分卷, 分卷大小 = <大小> * 1000 [*1024, *1]
vd 创建分卷前先清除磁盘内容
ver[n] 文件版本控制
vn 使用旧样式的卷命名方案
vp 在每个分卷压缩前暂停
w<路径> 指定工作目录
x<文件> 排除指定的文件
x@ 从标准输入设备读取要排除的文件名
x@<列表> 排除指定列表文件中的文件
y 所有的询问都回答是
z<文件> 从文件读取档案文件注释
cccmx 2004-01-04
  • 打赏
  • 举报
回复
我看了,不行呀
samuelcathy 2004-01-04
  • 打赏
  • 举报
回复
查一下winrar的帮助,看有没有什么参数可以控制

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧