VBA使用rar.exe命令行解压zip文件提示不是 rar 压缩文件,没有可提取的文件的解决办法

2017-09-13 09:00:00
zstmtony
原创
748

由于Access VBA及Excel VBA没有直接压缩和解压缩的函数和工具,所以一般都是借助于rar.exe通过命令行的方式来实现对rar压缩解压缩或生成rar压缩文件。

但rar.exe能否支持zip文件的压缩与解压缩呢?

我们尝试使用rar.exe来解压缩zip压缩文件,发现在命令行会提示 提示不是 rar 压缩文件,没有可提取的文件

那如何解决呢?


其实解决办法非常的简单:

1.就是把rar.exe改成winrar.exe就行了,因为rar.exe本来就只支持rar格式的压缩和解压

而要压缩和解压zip格式的压缩文件,就需要winrar.exe了


2. 当然对于zip压缩文件的处理也可使用 zip32.dll 或 unzip32.dll



相关资料:

在尝试提取zip文件时,我收到错误:
c:\ path \ name.zip不是RAR存档
没有要提取的文件
我的代码是:

p.StartInfo.FileName = @"C:\Program Files\WinRAR\rar.exe";
p.StartInfo.Arguments = string.Format("x -o- {2} "{0}" * "{1}"\\ ",
  szFN,
  outFolder,
  passWord == null ? "" : string.Format("-p"{0}"", passWord));
GUI版本可以提取zip和7z文件。

为什么这不工作?如何提取zip和7z文件?

(注意:我有不同的源代码为7zip,我想我可以合并这两个,只有使用上面的文件有一个rar扩展名,但我不喜欢这个解决方案。

免费unrar.exe和控制台版本Rar.exe的WinRAR的只支持RAR压缩文件格式。在手册的第二段中明确描述了WinRAR的程序文件文件夹中Rar.exe的文本文件。Rar.txt

您需要使用WinRar.exe,而且还支持其他归档格式:

[path \ winrar.exe] x [开关] [路径到zip文件] [要提取的文件。对于所有文件] [路径文件夹提取到]
例:

"%ProgramFiles%\WinRAR\winrar.exe" x -ibck c:\file.zip *.* c:\folder\
用于GUI版本的语法,命令和开关WinRAR.exe在WinRAR的帮助中列出和描述。单击菜单中的帮助菜单项帮助主题,在帮助选项卡上打开内容项目命令行模式,并阅读此项下列出的帮助页面。

例如,-ibck仅支持WinRAR.exe但不是通过的交换机Rar.exe是用于在后台运行提取,这意味着WinRAR的 GUI版本使提取最小化到Windows系统托盘中的图标。

分享