-4

こんにちは私はディレクトリ内のすべてのフォルダにファイルをコピーしたい

私のルートフォルダツリーは

ルートフォルダ内のファイルをすべてのターゲットフォルダにコピーしたい

フォルダ構造は

ここに画像の説明を入力してください

4

1 に答える 1

1

静的なフォルダ構造があるので、さまざまなサブフォルダを配列に格納し、それをループしcopyてファイルに送ることをお勧めします

$rootpath = ".";
$destpaths = array("/Folder1/Subfolder1/AnotherSubFolder/Target/",
               "/Folder2/Subfolder1/AnotherSubFolder/Target/",
               "/Folder3/Subfolder1/AnotherSubFolder/Target/",
               "/Folder4/Subfolder1/AnotherSubFolder/Target/",
               "/Folder5/Subfolder1/AnotherSubFolder/Target/",
               "/Folder6/Subfolder1/AnotherSubFolder/Target/",
               "/FolderN/Subfolder1/AnotherSubFolder/Target/");
$file = '/example.txt';
$copyfrom = $rootpath . $file;

foreach($destpaths as $destpath)
{
    $copyto = $rootpath . $destpath . $file;
    if (!copy($copyfrom, $copyto)) {
        echo "failed to copy $file";
    }
}

Aaron W.が提案し、 glob-phpを 使用して再帰パス(folder1、folder2 ...)を取得したように、このコードとファイルを同じフォルダーに配置し、folder1、folder2...と同じルートパスに配置します。

$rootpath = "..";
$frompath = ".";
$file = '/example.txt';
$tosubpath="/Subfolder1/AnotherSubFolder/Target/";
$copyfrom = $frompath . $file;

listdirs($rootpath,$copyfrom,$tosubpath,$file);


    function listdirs($dir,$copyfrom,$tosubpath,$file) {
        $dirs = glob($dir . '/*', GLOB_ONLYDIR);

    foreach($dirs as $destpath)
    {   

        $copyto = $destpath. $tosubpath . $file;
        if (!copy($copyfrom, $copyto)) {
            echo "failed to copy ".$copyfrom." to".$copyto."<br>";
        }else{
            echo $copyfrom." copied to".$copyto."<br>";
        }
    }
}
于 2013-01-08T12:19:37.607 に答える