• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

用Wscript.Shell压缩有问,多谢

php 搞代码 3年前 (2022-01-24) 14次浏览 已收录 0个评论

用Wscript.Shell压缩有问,谢谢

<br /><?PHP<br />class rar<br />{<br /><br />public $Path; //文件路径<br /><br />public $Save; //保存路径<br /><br />public $Object; //Wscript.Shell对象实例<br /><br />function rar(){ //构造函数<br /><br />$this->Object = new com("Wscript.Shell"); //实例化一个Shell对象<br /><br />}<br /><br />function Release(){ //解压方法<br /><br />$this->Object->run("WinRAR x $this->Path $this->Save",1,false); //Path要解压的文件名及路径 Save保存路径<br /><br />   if($this->Object == true){<br /><br />   return true;<br /><br />   }else{<br /><br />   return false;<br /><br />   }<br /><br />}<br /><br />function Pressure(){ //压缩方法<br /><br />$this->Object->run("WinRAR a $this->Save $this->Path",1,true); //Save压缩后保存的路径及文件名 Path要压缩的路径<br /><br />   if($this->Object == true){<br /><br />   return true;<br /><br />   }else{<br /><br />   return false;<br /><br />   }<br /><br />}<br />}<br /><br /><br />$rar=new rar();<br />$rar->Path="F:/js/test/z.rar";<br />$rar->Save="F:/js/test";<br />if($rar->Release()){<br />die('解压成功');<br />}else{<br />die('解压失败');<br />}<br />?><br /> <br /><br /><br />

+本文来源gao@daima#com搞(%代@#码网

搞代gaodaima码

这个代码,能正常压缩
但是它只能压缩绝对路径,而且压缩的时候,它把所有的目录都添加成了空文件夹
比如,我压缩:c:\a\b\c\k.txt
那么压缩后的压缩文件就有很多层文件夹在里面
-a
-b
-c
-k.txt
怎么办啊?
用相对目录就不能压缩
——解决方案——————–
你可以给 winrar 加上下面参数,但须清楚这样做的后果

ep 从名称中排除路径

包含此开关时,文件在加入压缩文件时不会包含路径信息。这可能会有在压缩文件中,存在数个相同名称的结果。

ed 不添加空目录

这个开关指出空目录不被存储到被创建的压缩文件中。当解压这样一个压缩文件时, RAR 会基于他们内部的文件路径创建非空的目录。关于空目录的信息丢失。非空目录除了名字外(访问权限, 流, 等。)其他所有属性全部丢失, 所以只有在你不需要保留这样的信息时使用此开关。

——解决方案——————–
$this->Object->run(“WinRAR a 参数在这里 $this->Save $this->Path”,1,true);


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:用Wscript.Shell压缩有问,多谢

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址