PHP を使用してフォルダー全体をコピーするクラスを再帰的に実装する
- /*
- * フォルダー コピー クラス、
- * Zhao Chun 2012 年 6 月 14 日 17:20:30
- * ブログ: www.zhaochun.net
- */
- class CopyFile
- {
- public $ fromFile;
- public $toFile;
- /*
- * $fromFile 誰をコピーするか
- * $toFile そのコピー先
- */
- function copyFile($fromFile,$toFile){
- $this->CreateFolder($ toFile);
- $folder1=opendir($fromFile);
- while($f1=readdir($folder1)){
- if($f1!="." && $f1!=".."){
- $path2 ="{ $fromFile}/{$f1}";
- if(is_file($path2)){
- $file = $path2;
- $newfile = "{$toFile}/{$f1}";
- copy($ file, $ newfile);
- }elseif(is_dir($path2)){
- $toFiles = $toFile.'/'.$f1;
- $this->copyFile($path2,$toFiles);
- }
- }
- }
- }
- /*
- * フォルダーを再帰的に作成します
- */
- function CreateFolder($dir, $mode = 0777){
- if (is_dir($dir) || @mkdir($dir,$mode)){
- return true;
- }
- if (!$this->CreateFolder(dirname($dir),$mode)){
- return false;
- }
- return @mkdir($dir, $mode);
- }
- }
- //使用法Method
- //このクラスを直接導入 new copyFile('誰をコピーする', 'コピー先');
- //$file = new CopyFile('aaaa/aaaaa','bbbbb/bbbb') ;
- ?> ;
コードをコピー
|