我想在程序中使用shell调用WinRar压缩及解压缩文件,请问如何解决?小弟有急用!!!

解决方案 »

  1.   

    在安装 WinRAR 后你会发现,在相同目录中有个文件 rar.exe。它也是 32 位 RAR 的 Windows 
    版本,但它只支持命令行,纯文本模式的界面。当从 DOS 提示符模式下的 BAT 和 CMD 文件来调用控制 RAR 等时,它特别有用。它支持了与比 WinRAR 多很多得命令行参数开关和命令,虽然它有着常规命令行 WinRAR 命令行界面 相似的语法,但却是个真正的 RAR 控制台程序。此帮助文件不包含那一些仅在控制台版本中所支持的开关参数和命令的描述。你可以读取 rar.txt 文件来获取所有控制台 RAR 功能的详细帮助。
      

  2.   

    压缩档案 (加入档案):语法: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"
      wtarget = "c:\TargetFolder\AssignedNameFile.zip"
      wsource = "c:\SourceFolder\SourceFile(s)"
      wcmd = wzipexe & " -a " & wtarget & " " & wsource
      retval = Shell(wcmd, 6)
        
      '上面的一大串可写成
      'retval = Shell("C:\program files\winzip\WINzip32 -a _
      'c:\TargetFolder\AssignedNameFile.zip c:\SourceFolder\SourceFile(s)", 6)
    End Sub
      

  3.   

    我自己开发了个小程序,就是调用winrar的,很完整。
      

  4.   


    RAR 3.10    版权 (C) 1993-2002 Eugene Roshal    18 十二月 2002
    已注册给 - User -用法:     rar <命令> -<开关 1> -<开关 N> <压缩文件> <文件...>
                   <@列表文件...> <解压路径\><命令>
      a             添加文件到压缩文件
      c             添加压缩文件注释
      cf            添加文件注释
      cw            写入压缩文件注释到文件
      d             删除压缩文件中的文件
      e             解压压缩文件到当前目录
      f             刷新压缩文件中的文件
      i[参数]=<串>  在压缩文件中查找字符串
      k             锁定压缩文件
      l[t]          列出压缩文件[技术信息]
      m[f]          移动到压缩文件[仅对文件]
      p             打印文件到标准输出设备
      r             修复压缩文件
      rc            重建丢失的卷
      rr[N]         添加数据恢复记录
      rv[N]         创建恢复卷
      s[名字|-]     转换压缩文件为自解压格式或转换回压缩文件
      t             测试压缩文件
      u             更新压缩文件中的文件
      v[t]          详细列出压缩文件[技术信息]
      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[属性]    用 E-mail 发送压缩文件
      ierr          发送所有消息到标准错误设备
      ilog[名称]    把错误写到日志文件(只有注册版本可用)
      inul          禁用所有消息
      ioff          完成一个操作后关闭 PC 电源
      isnd          启用声音
      k             锁定压缩文件
      kb            保留损坏的已解压文件
      m<0..5>       设置压缩级别(0-存储...3-默认...5-最大)
      mc<参数>      设置高级压缩参数
      md<大小>      以KB为单位的字典大小(64,128,256,512,1024,2048,4096 or A-G)
      ms[ext;ext]   指定存储的文件类型
      o+            覆盖已存在文件
      o-            不覆盖已存在文件
      os            保存 NTFS 流
      ow            保存或恢复文件所有者和组
      p[密码]       设置密码
      p-            不询问密码
      r             递归子目录
      r0            仅递归通配符名称的子目录
      ri<P>[:<S>]   设置优先级(0-默认,1-最小..15-最大)和以毫秒为单位的休眠时间
      rr[N]         添加数据恢复记录
      rv[N]         创建恢复卷
      s[<N>,v[-],e] 创建固实压缩文件
      s-            禁用固实压缩文件
      sfx[名称]     创建自解压压缩文件
      t             压缩后测试文件
      ta<日期>      添加日期 <日期> 后修改的文件,日期格式 YYYYMMDDHHMMSS
      tb<日期>      添加日期 <日期> 前修改的文件,日期格式 YYYYMMDDHHMMSS
      tk            保留原始压缩文件时间
      tl            设置压缩文件时间为最新文件时间
      tn<时间>      添加 <时间> 以后的文件
      to<时间>      添加 <时间> 以前的文件
      u             更新文件
      v             自动检测创建卷的大小或者列出所有的卷
      v<大小>[k,b]  创建卷大小=<大小>*1000 [*1024, *1]
      vd            创建容量前清除磁盘内容
      ver[n]        文件版本控制
      vn            使用旧风格的卷命名方案
      vp            每卷之前暂停
      w<路径>       指定工作目录
      x<文件>       排除指定的文件
      x@            从标准输入设备读取要排除的文件名
      x@<列表>      排除指定列表文件中的文件
      y             假设对全部询问都回答是
      z<文件>       从文件读取压缩文件注释