ホームページ >バックエンド開発 >PHPチュートリアル >Wscript.Shell 圧縮の使用について質問があります。ありがとうございます。

Wscript.Shell 圧縮の使用について質問があります。ありがとうございます。

WBOY
WBOYオリジナル
2016-06-13 13:01:35846ブラウズ

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 />

通常圧縮するにはこのコードを使用します
ただし、圧縮できるのは絶対パスのみであり、圧縮時にはすべてのディレクトリが空のフォルダーに追加されます
たとえば、c:abck.txt
を圧縮します。 すると、圧縮された圧縮ファイルは
内に何層ものフォルダーができます。 -a
-b
-c
-k.txt
どうすればいいですか?
相対ディレクトリを使用して圧縮することはできません
------解決策---------
winrar Add を指定できます以下のパラメータを使用しますが、これを実行した場合の結果に注意してください

ep 名前からパスを除外します

このスイッチが含まれている場合、ファイルを圧縮ファイルに追加するときに、ファイルにはパス情報が含まれません。これにより、同じ名前のファイルが複数存在する可能性があります。

空のディレクトリを追加しないでください

このスイッチは、作成されたアーカイブに空のディレクトリが保存されないことを示します。このようなアーカイブを解凍するとき、RAR は内部ファイル パスに基づいて空ではないディレクトリを作成します。空のディレクトリに関する情報は失われます。空ではないディレクトリの名前を除くすべての属性 (アクセス権、ストリームなど) が失われるため、このような情報を保持する必要がない場合にのみこのスイッチを使用してください。


-----解決策---------
$this->オブジェクト- > ;run("WinRAR パラメーターはここにあります $this->Save $this->Path",1,true);

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。