CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

请问我这个调用Winrar的解压程序为什么总是解压不了啊(没分了,我到是希望能多给点)

楼主johson1982(土木人)2004-10-04 16:00:55 在 VB / 数据库(包含打印,安装,报表) 提问

我用了别人的调用Winrar压缩和解压程序,压缩是没问题的,但是解压就有问题,就是出现诊断信息"没有文件被释放"的错误信息,我把解压贴出来,请大家帮忙看下,谢谢  
  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   =   "D:\program   files\winrar\winrar"  
   
          Source   =   "E:\数据库1\文件\6.rar"  
   
          Target   =   "E:\数据库1\文件\6.doc"  
   
          FileString   =   Rarexe   &   "   X   "   &   Source   &   "   "   &   Target  
   
          Result   =   Shell(FileString,   1)  
   
          End   Sub  
  当然6.rar是首先通过6.doc压缩成的,现把6.doc删除解压6.rar就不行啊 问题点数:10、回复次数:7Top

1 楼dongge2000(目前叫西西了)回复于 2004-10-04 16:59:37 得分 1

我是用RAR的命令行做的。  
  Dim   x   As   Long  
  x   =   Shell("Rar.exe   a   MyRar.rar   d:\",vbHide)  
   
  'Unrar  
  Dim   x   As   Long  
  x   =   Shell("UnRar.exe   x   -y   d:\MyRar.rar   c:\",   vbHide)Top

2 楼RUKYO(蠢蠢的男子汉 - 恋星夜柔光,舔烈酒豪情)回复于 2004-10-04 19:36:48 得分 3

不好意思,先前没有调试过,这段解压是调试过的:  
   
  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   =   "E:\WinRAR\WinRAR.exe"           '"E:\WinRAR\":我WinRAR程序安装路径       "WinRAR.exe":就是WinRAR主程序  
   
          Source   =   App.Path   &   "\Test.rar"           '需要解压的源文件  
   
          Target   =   App.Path   &   "\Test"             '注意这里是填入你要解压的路径  
   
          FileString   =   Rarexe   &   "   X   "   &   Source   &   "   "   &   Target  
   
          Result   =   Shell(FileString,   vbHide)  
   
  End   Sub  
   
  Top

3 楼guxizhw(失落的彩虹)回复于 2004-10-05 11:09:19 得分 3

Public   Function   gCompress(ByVal   pstrSource   As   String,   ByVal   pstrTarget   As   String,   Optional   IsCps   As   Boolean   =   True)   As   Boolean  
   
  '文件压缩以及解压模块  
   
  'pstrSource:压缩前的原始文件  
   
  'pstrTarget:压缩后的目标文件  
   
  'IsCps   :   是解压:false   还是压缩:   true  
   
  Dim   Rarexe   As   String   'WINRAR执行文件的位置  
           
  Dim   FileString   As   String   'Shell指令中的字符串  
   
  Dim   Result   As   Long  
   
  gCompress   =   True  
   
  On   Error   GoTo   Err  
   
  If   IsCps   =   True   Then   '压缩  
           
           
          Rarexe   =   App.Path   &   "\WinRAR.EXE"  
           
          FileString   =   Rarexe   &   "   a   -o+   -r     -ep   -m5       """   &   pstrTarget   &   """     """   &   pstrSource   &   """"  
           
          Result   =   Shell(FileString,   vbHide)  
         
               
  Else       '解压  
             
           
          Rarexe   =   App.Path   &   "\WinRAR.EXE"  
           
          FileString   =   Rarexe   &   "   e   -o+   """   &   pstrSource   &   """   """   &   pstrTarget   &   """"  
           
          Result   =   Shell(FileString,   vbHide)  
   
   
  End   If  
   
  Exit   Function  
   
  Err:  
         
        MsgBox   "文件压缩导出失败!请重新发送",   vbOKOnly,   "对不起"  
               
        Screen.MousePointer   =   0  
         
        gCompress   =   False  
   
  End   Function  
   
  这个是我调试过的,不好用留言我Top

4 楼johson1982(土木人)回复于 2004-10-05 19:41:06 得分 0

不好意思了,我运行了还是出那种问题,不知道我是不是我有些地方没弄对吗  
  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   =   "D:\program   files\WinRAR\WinRAR.exe"   这是我的WinRar安装地方  
  Source   =   App.Path   &   "\Test.rar"           '需要解压的源文件  
  Target   =   App.Path   &   "\Test"  
  FileString   =   Rarexe   &   "   X   "   &   Source   &   "   "   &   Target  
  Result   =   Shell(FileString,   vbHide)  
  End   Sub  
  我的程序是在E:\下,Test.rar是放在E:\下为E:\Test.rar,是由E:\Test.doc压缩而成,现把Test.doc删除用上面的不行,请问怎么解决呢,  
  ******另外我想问的是你这样必须指定释放的路径,我现在想的是用户不一定想把东西释放到指定的路径,也就是我现在把所有的文件都以压缩后的方式存储,而我想如果我查询到后能够打开winrar这个程序同时里面即是我想解压的文件,至于解不解压和放到那里是他们的事,不知道我讲明白了没,就是我现在不想给出一个固定的释放地址,就想能够查询到后能打开winrar.exe而里面就是即被解压的文件Top

5 楼guxizhw(失落的彩虹)回复于 2004-10-05 21:11:12 得分 0

看rar的中文手册吧  
  没有email   guxizhw◎sina.com  
  太长,贴了2次没贴上郁闷Top

6 楼vodlinux(好易用)回复于 2004-10-05 21:17:39 得分 3

你这样当然不行啦,   你的程序在E:\,   那么你的   App.path="E:\"  
  你程序中的   Source=App.Path   &   "\Test.rar"     就是:  
  "E:\\Test.rar"  
   
  Target   =   App.Path   &   "\Test"       就是:  
  "E:\\Test"  
   
  相信WINDOWS是不认你这个路径哦!  
  你应该这样:  
  ......  
   
  if   Right(App.Path,1)="\"   then  
          Source   =   App.path   &   "Test.rar"    
          Target   =   App.Path   &   "Test"  
  Else  
          Source   =   App.path   &   "\Test.rar"    
          Target   =   App.Path   &   "\Test"          
  End   if  
  if   Dir(Target,vbDirectry)=""   Then     '没有目标文件夹,   就建立它  
          Call   MkDir("D:\Test")  
  end   if  
  ''   需要注意,   我不知道winrar的解压参数是不是"x",你自己搞清楚了,  
  FileString   =   Rarexe   &   "   x   "   &   Source   &   "   "   &   Target  
  Result   =   Shell(FileString,   vbHide)  
   
  ......  
                                 
  Top

7 楼johson1982(土木人)回复于 2004-10-05 21:38:56 得分 0

非常感谢你们三位,最后出的问题就是vodlinux(好易用)说的,谢谢,只有十分怎么办,每人3分吧Top

相关问题

  • 程序调用
  • 程序调用!!
  • 调用程序
  • 调用DOS程序
  • 如何在程序中调用pkunzip解压某一文件?
  • 程序调用Dll后死锁怎样解除??
  • C#中调用外部命令行程序新问题求解
  • 程序调用webservice出现 (401) Unauthorized错误,怎么解决
  • 求教调用程序!
  • 如何调用子程序???????????????????????????????????????????????????

关键词

  • winrar
  • 文件
  • shell
  • source
  • 解压
  • rarexe
  • 压缩
  • filestring
  • vbhide
  • rar

得分解答快速导航

  • 帖主:johson1982
  • dongge2000
  • RUKYO
  • guxizhw
  • vodlinux

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo