私は、フォルダとファイル内のフォルダとファイルをコピーするのに役立つはずの次の関数を持っています。次の目的地にCodeigniter再帰的にフォルダとファイルをコピーする
Documents/Projects/Sensitization Workshop Meeting/Milestones/Activity No 1/Tasks/Task One/New File.txt
:私は、次のソースをコピーしたい
Documents/Projects/Sensitization Workshop Meeting/Milestones/Asqwerty/Tasks/Task One/ New File.txt
ので、フォルダの変更が活動なし1 - > Asqwerty、 「私は、次の機能を試してみましたが、それはdidnのトンの仕事:
// copy recursive
function recursive_copy($source, $dest) {
if (is_dir($source)) {
$dir_handle = opendir($source);
while ($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
if (is_dir($source . "/" . $file)) {
if (!is_dir($dest . "/" . $file)) {
mkdir($dest . "/" . $file, 0777, TRUE);
}
$this->recurse_copy($source . '/' . $file, $dest . '/' . $file);
} else {
copy($source . "/" . $file, $dest . "/" . $file);
}
}
}
closedir($dir_handle);
} else {
copy($source, $dest);
}
}
が、次のレベルにそれはコピーのみ:
Source : Documents/Projects/Sensitization Workshop Meeting/Milestones/Activity No 1/Tasks
Destination : Documents/Projects/Sensitization Workshop Meeting/Milestones/Asqwerty/Tasks
私はこれをどのように探し出すことができますか?ユーザがログインするシステムに私はこれをテストしていませんが、私はこれを考える
$source = BASE_PRINCIPAL;
$dest = MEMBER_PRINCIPAL . $user_id . MEMBER_RESOURCES;
private function _create_basic_themplates($user_id, $source, $dest){
// recursive function to copy
// all subdirectories and contents:
mkdir($dest, DIR_WRITE_MODE, TRUE);
foreach(
$iterator = new \RecursiveIteratorIterator(
new \RecursiveDirectoryIterator($source, \RecursiveDirectoryIterator::SKIP_DOTS),
\RecursiveIteratorIterator::SELF_FIRST) as $item
){
if($item->isDir()){
mkdir($dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName(), DIR_WRITE_MODE, TRUE);
}
else{
copy($item, $dest . DIRECTORY_SEPARATOR . $iterator->getSubPathName());
}
}
}
[phpを使ってディレクトリの内容を別のディレクトリにコピー]の複製があります(http://stackoverflow.com/questions/2050859/copy-entire-contents-of-a-directory-to-another-using-php) – MonkeyZeus
@MonkeyZeus私はそれを試してみました...それは、親ディレクトリではなく、二次ディレクトリのために働いた。 –