请问如何使用VB代码,不借助第三方DLL而实现,仅调用ZIP的命令控制行,最好提供关键部分的代码。
非常感谢,小弟今天要用。

解决方案 »

  1.   

    zip有没有参数?winrar有个rar.exe 支持命令行模式的,你到zip目录下面看看有没有,有的话在cmd模式下打 程序名/? 就可以显示出来了。附:rar命令参数
    用法:     rar <命令> -<开关 1> -<开关 N> <压缩文件> <文件...>
                   <@列表文件...> <解压路径\><命令>
      a             添加文件到压缩文件
      c             添加压缩文件注释
      cf            添加文件注释
      cw            写入压缩文件注释到文件
      d             删除压缩文件中的文件
      e             解压压缩文件到当前目录
      f             刷新压缩文件中的文件
      i[参数]=<串>  在压缩文件中查找字符串
      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           展开为完整路径
      ep3           扩展路径为包含盘符的完全路径
      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-            不覆盖已存在文件
      oc            设置 NTFS 压缩属性
      os            保存 NTFS 流
      ow            保存或恢复文件所有者和组
      p[密码]       设置密码
      p-            不询问密码
      r             递归子目录
      r0            仅递归通配符名称的子目录
      rr[N]         添加数据恢复记录
      rv[N]         创建恢复卷
      s[<N>,v[-],e] 创建固实压缩文件
      s-            禁用固实压缩文件
      sfx[名称]     创建自解压压缩文件
      st[名称]      从标准输入设备读取数据(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<文件>       从文件读取压缩文件注释
      

  2.   

    压缩文件用 WZZIP.exe :
    通用格式:wzzip [options] zipfile [@listfile] [files...]
    [options]包括:
    -a              默认的操作,压缩文件
    -a+             压缩文件,并删除要压缩的文件
    -b[drive|path]    是在另外的驱动器上创建临时压缩文件
    -d              删除zip文件中指定的目标文件
    -e<x|n|f|s|0>   是设置压缩比率,x最大,0最小
    -f              替换zip文件中存在的文件
    -h|-?            察看帮助
    -v              创建一个压缩文件的列表信息
    -@list             先创建一个包含所有要解压的文件的文件,然后按所包含的的文件名压缩
    ...............(其他具体看帮助文件)
    [@listfile]     是压缩文件的列表信息纪录
    [files...]      则是要压缩的多个文件,用空格隔开,也可以用通配符例:
    压缩当前目录的所有文件   
    wzzip test.zip *.*
    压缩类型为txt的所有文件  
    wzzip test.zip *.txt
    压缩两个文件            
    wzzip test.zip abc.txt def.txt
    压缩类型为txt的所有文件除了abc.txt 
    wzzip -xABC.TXT test.zip *.txt
    压缩D:\docs下的所有类型为txt的文件及子目录  
    wzzip -rp test.zip d:\docs\*.txt
    把zipit.1st里的文件更新到test.zip  
    wzzip -u test.zip @Zipit.lst
    列出一个压缩文件的列表内容
    wzzip -v test.zip
    解压文件用WZUNZIP.exe :
    通过格式:wzunzip [options] zipfile [@listfile] [path] [files...]
    [options]包括:
    -c[m]            解压是显示文件列表在dos屏幕中
    -d              重建zip文件中的目录结构
    -f              只解压在zip文件里同目前文件夹存在的同名的文件,如果没有则不解压
    -jhrs            忽视zip文件里的文件的隐藏、只读、系统属性
    -Jhrs            只解压带有隐藏、只读、系统属性的文件
    -n              只解压叫新的文件,如果要解压的文件比已存在的新则替换。
    -o              不用通过yes来确定是否要替换文件
    -v              创建一个压缩文件的列表信息
    -@list            先创建一个包含所有要解压的文件的文件,然后按所包含的的文件名解压
    ...............(其他具体看帮助文件)
    例如:
    创建所有文件到当前目录下
    wzunzip test.zip
    从test.zip中创建abc.txt到当前目录下
    wzunzip test.zip abc.txt
    创建在test.zip中的目录结构及文件到当前目录下
    wzunzip -d test.zip
    创建在test.zip中的目录结构及文件到c:\docs下
    wzunzip -d test.zip c:\docs从test.zip中创建包含在files.ist中的文件名的文件
    wzunzip test.zip @files.lst
    显示test.zip的文件列表内容
    wzunzip -v test.zip
    显示压缩文件中所有类型为txt的文件列表内容
    wzunzip -v test.zip *.txt至于用vb调用,你用shell语句就足够了
      

  3.   

    完全用VB编写的压缩算法源代码:
    http://community.csdn.net/Expert/topic/3622/3622739.xml?temp=.8099787
      

  4.   

    thanks all of you
    i have got another way,thanks all the same.