Archive_Tar::addModify()
Archive_Tar::addModify() – ファイルまたはディレクトリを追加する
Synopsis
require_once 'Archive/Tar.php';
boolean addModify (
mixed $filelist
, string
$add_dir
, string
$remove_dir = ''
)
Description
このメソッドは既存のアーカイブに filelist
にリストされたファイルやディレクトリを追加します。
もしアーカイブが存在しない場合、アーカイブを生成しようと試みます。
リストされるファイルやディレクトリは、アーカイブの最後にだけ追加されます。
しかしながら、アーカイブを展開する際に
最後のファイルは最初のファイルを上書きします。
これはアーカイブサイズの最適化がなされない、という結果になります。
もしファイルもしくはディレクトリが存在しない場合は無視されます。
Parameter
-
mixed $filelist
-
ファイル名やディレクトリ名の配列、
もしくは単一のスペースで区切られた名前の文字列を指定します
-
string $add_dir
-
リストにある各要素に追加するパスを含む文字列を指定します
-
string $remove_dir
-
該当する場合、
リストにある各要素から削除するパスを含む文字列を指定します。
add_dir
で指定されたパスは、
リストされた各ファイル/ディレクトリの最初に付加されます。
しかし、空 '' に設定することもできます。
パスの追加はパスの削除の後実行されます。
パスの追加/削除機能により、オリジナルパスと異なるパスにアーカイブを
準備する事が可能です。
Return value
boolean
- Returns TRUE on success, FALSE on failure.
Throws
Possible PEAR_Error values
エラーコード |
エラーメッセージ |
理由 |
解決法 |
NULL |
"Invalid file list" |
関数に対する引数が正しくフォーマット、
あるいは構成されていません
|
引数のタイプミスを確認してください
|
NULL |
"Unable to open in write mode file name
"
|
既存ファイルのファイル権限が書き込みを許可していない、
もしくはファイルがロックされています。
|
権限、または当該ファイルを使用しているプログラムの競合の可能性を
確認してください
the file.
|
NULL |
"Invalid file list"
|
アーカイブが空、もしくは破損しています
|
|
NULL |
"File filename
does not exist"
|
アーカイブに追加するファイルが存在しません
|
関数の引数のタイプミスを確認してください
|
NULL |
"Directory dirname
can not be read"
|
アーカイブに追加するディレクトリもしくはファイルが存在しない、
もしくはディレクトリの読み込み権限がありません
|
関数の引数のタイプミスや権限を確認してください
|
NULL |
"Unable to open file filename
in binary read mode"
|
アーカイブに追加するファイルを読めませんでした
|
関数の引数のタイプミスやファイルの権限を確認してください
|
Note
This function can not be called
statically.
Example
圧縮されたアーカイブの新規ディレクトリにファイルを追加する
<?php
$tar_object = new Archive_Tar("tarname.tar");
$v_list[0]="dev/file.txt";
$v_list[1]="dev/data/";
$v_list[2]="log/file.log";
$tar_object->addModify($v_list, "install");
// アーカイブにストアされているファイルは次の通り :
// install/file.txt
// install/data
// install/data/file1.txt
// install/data/... data/ の全てのファイルやサブディレクトリ
// install/file.log
?>
圧縮されたアーカイブの新規ディレクトリに移動しながらファイルを追加する
<?php
$tar_object = new Archive_Tar("tarname.tar");
$v_list[0]="dev/file.txt";
$v_list[1]="dev/data/";
$v_list[2]="log/file.log";
$tar_object->addModify($v_list, "install", "dev");
// アーカイブにストアされているファイルは次の通り :
// install/file.txt
// install/data
// install/data/file1.txt
// install/data/... data/ の全てのファイルやサブディレクトリ
// install/log/file.log
?>
圧縮されたアーカイブの新規ディレクトリに移動しながらファイルを追加する
(特に Windows の場合)
<?php
$tar_object = new Archive_Tar("tarname.tar");
$v_list[0]="d:\\dev\\file.txt";
$v_list[1]="d:\\dev\\data\\";
$v_list[2]="d:\\log\\file.log";
$tar_object->addModify($v_list, "install/temp", "d:\\dev");
// アーカイブにストアされているファイルは次の通り :
// install/temp/file.txt
// install/temp/data
// install/temp/data/file1.txt
// install/temp/data/... data/ の全てのファイルやサブディレクトリ
// install/temp/log/file.log
?>
Windows システムでは、Windows のパスフォーマットが利用可能です。
しかしながら、ファイルが Windows のパスを使用している場合、
$remove_dir
パラメータも Windows
のパスフォーマットにしなければなりません。
$add_dir
パラメータは、Windows もしくは
UNIX のパスフォーマットで指定可能です。