Archive_Tar::extractModify()

Archive_Tar::extractModify() – 新規ディレクトリにファイルを伸長する

Synopsis

require_once 'Archive/Tar.php';

boolean extractModify ( string $path , string $remove_path )

Description

このメソッドはアーカイブの全ての内容を path で指定されたディレクトリに伸長します。 ファイルやディレクトリの記録されたパスが該当する場合、 ファイルやディレクトリパスの最初にある remove_path が削除されます。

ファイルを伸長している間、ファイルがすでに存在する場合は、 最終更新日を確認することなく置換されます。 もしファイルがすでに存在しており書き込み保護されている場合、 伸長は中止されます。 もし同名のディレクトリがすでに存在する場合、伸長は中止されます。

ディレクトリを伸長している間、同名のファイルがすでに存在している場合は 伸長が中止されます。 ファイルやディレクトリを伸長している間、伸長先のディレクトリが存在し かつ書き込み保護されている、もしくは存在しないかつ作成できない場合、 伸長は中止されます。 もし伸長後のファイルが正しいファイルサイズではない場合、 伸長は中止されます。

Parameter

  • string $path - ファイルやディレクトリを伸長するために必要な ディレクトリのパスを指定します。

  • string $remove_path - ファイルやディレクトリパスの最初に現れる場合に削除する 記録されたパスの一部を指定します

Return value

boolean - Returns TRUE on success, FALSE on failure.

Throws

Possible PEAR_Error values
エラーコード エラーメッセージ 理由 解決法
NULL " Unable to open in read mode archive " ファイルが他のアプリケーションによって排他的にロックされています。 当該ファイルを使用している他のアプリケーションを確認してください。 これは競合する Archive_Tar でアーカイブを処理している場合は発生しません。
NULL " Unable to open in write mode archive " ファイルが他のアプリケーションによってロックされています。 当該ファイルを使用している他のアプリケーションを確認してください。 これは競合する Archive_Tar でアーカイブを処理している場合に発生するかも知れません。
NULL " Invalid extractmodify mode mode " 実装エラーです。 発生しないはずですが、その場合はバグレポートをお願いします。
NULL " Directory name already exists as a file " そのファイルはアーカイブ中でディレクトリとしてマークされています。 壊れたアーカイブなのかも知れません
NULL " File name already exists as a directory " そのディレクトリはアーカイブ中でファイルとしてマークされています。 壊れたアーカイブなのかも知れません
NULL " File name already exists and is write protected. " アーカイブは伸長先ディレクトリにすでに存在しているファイルを 含んでおり、上書きすることができません。 空のディレクトリにアーカイブを伸長してください。
NULL " Unable to create path for name " 1 つもしくはそれ以上のネストした新規ディレクトリは 伸長先ディレクトリに生成できません。 伸長先ディレクトリと全てのネストしたディレクトリが 要求される権限を持っているか確認してください。
NULL " Unable to create directory name " ディレクトリを伸長先ディレクトリに生成することができませんでした。 伸長先ディレクトリに要求される権限を持っているか確認してください。
NULL " Error while opening name in write binary mode " ファイルを生成することができませんでした。 ファイルがロックされている可能性があります。
NULL " Extracted file filename does not have the correct file size filesize (size expected). Archive may be corrupted. " メッセージを参照してください。 メッセージを参照してください。

Note

This function can not be called statically.

Example

古いディレクトリを無視しながら新しいディレクトリに圧縮された アーカイブを伸長する


// tarname.tar は以下のファイルを含む :
//   dev/data/file.txt
//   dev/data/log.txt
//   readme.txt

$tar_object = new Archive_Tar("tarname.tar");
$tar_object->extractModify("install", "dev");

// 伸長されるファイルは以下の通り :
//   install/data/file.txt
//   install/data/log.txt
//   install/readme.txt

古いディレクトリを無視しながら新しいディレクトリに圧縮された アーカイブを伸長する (特に Windows の場合)


// tarname.tar は以下のファイルを含む :
//   dev/data/file.txt
//   dev/data/log.txt
//   readme.txt

$tar_object = new Archive_Tar("tarname.tar");
$tar_object->extractModify("d:\\install\\temp", "dev");

// 伸長されるファイルは以下の通り :
//   d:\\install\\temp\\data\\file.txt
//   d:\\install\\temp\\data\\log.txt
リスとされたファイルを伸長する (Previous) アーカイブにあるファイルとディレクトリをリストする (Next)
Last updated: Tue, 29 Jul 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.