[PHP-users 12191] ディレクトリ以下のファイルの圧縮解凍について

月野 愛美 php-users@php.gr.jp
Thu, 12 Dec 2002 02:54:49 +0000


はじめまして。月野と申します。
いつもお世話になっております。

ディレクトリ以下のファイルを圧縮する方法について教えて頂きたくメールしまし
た。

/TestDir/test1.txt
     test2.txt
	test3.txt
		 
というディレクトリがあったとして、testDir以下を圧縮したいのですが、
例えばsystem()を使って

	system( "tar czvf TestPackage.tar.gz  /Testdir" , $ret );
	
	
とすると、TestPackage.tar.gzができるのですが、
コマンドライン上で展開すると、(当たり前なのですが)
/TestDir/test1.txt
	test2.txt
	test3.txt

という形式でファイルが作成されてしまいます。

展開後、TestDirディレクトリ無しに、
直接	test1.txt
	test2.txt
	test3.txt
の形式でファイルを作成したいのですが、どのようにしたらよいでしょうか。

Linuxのコマンドの問題なのですが、
他にもsystem()を使用せずに圧縮ファイルを作る方法等ありましたら教えていただき
たく
思います。

ディレクトリをopenして、ファイルを一旦配列に格納し
"tar czvf TestPackage.tar.gz  /Testdir/test1.txt test2.txt test3.txt";
という文字列を作成する方法も考えましたが…
(結局system()を使用するのですが)

/********************* 例 **************************/
$work="";
if ( $handle = opendir( "/TestDir" ) ) {
	while ( ( $file = readdir($handle)) !== FALSE ) {
		if ( $file != "." && $file != "..") {    
			$work .= $file . " ";
			$i++;
		}
	}
}

$cmd= "tar czvf TestPackage.tar.gz  /Testdir/" . $work ;
system($cmd.$ret);

/**************************************************/


一番シンプルな圧縮方法をご助言して頂きたいです。
よろしくお願いします。


_________________________________________________________________
ネットを使うひとに有利な特典いっぱい MSN カード  http://card.msn.co.jp/