<?PHP
class rar
{public $Path; //文件路径public $Save; //保存路径public $Object; //Wscript.Shell对象实例function rar(){ //构造函数$this->Object = new com("Wscript.Shell"); //实例化一个Shell对象}function Release(){ //解压方法$this->Object->run("WinRAR x $this->Path $this->Save",1,false); //Path要解压的文件名及路径 Save保存路径 if($this->Object == true){ return true; }else{ return false; }}function Pressure(){ //压缩方法$this->Object->run("WinRAR a $this->Save $this->Path",1,true); //Save压缩后保存的路径及文件名 Path要压缩的路径 if($this->Object == true){ return true; }else{ return false; }}
}
$rar=new rar();
$rar->Path="F:/js/test/z.rar";
$rar->Save="F:/js/test";
if($rar->Release()){
die('解压成功');
}else{
die('解压失败');
}
?>
用这个代码,能正常压缩
但是它只能压缩绝对路径,而且压缩的时候,它把所有的目录都添加成了空文件夹
比如,我压缩:c:\a\b\c\k.txt
那么压缩后的压缩文件就有很多层文件夹在里面
-a
-b
-c
-k.txt
怎么办啊?
用相对目录就不能压缩
参数加在哪儿啊?
資料夾b下有 資料夾cc
想要把資料夾cc 的檔案壓縮成cc.zip
而cc.zip與資料夾b在同一位置。
採用你原本的代碼 只是 有下列的改變,請問以下這樣寫 是錯在哪裡?
感謝!$this->Object->run("WinRAR a -ep1 $this->Save $this->Path",1,true);$rar=new rar();
$rar->Path="b/cc";
$rar->Save="cc.zip";
$rar->Pressure();