2013-01-08 56 views
-4

您好我想將文件複製到所有文件夾目錄中的PHP文件拷貝到所有文件夾

我的根文件夾樹是

我想在根文件夾中的文件複製到每一個目標文件夾

文件夾結構

enter image description here

+1

如果文件夾結構是動態還是靜態? –

+0

以遞歸方式遍歷文件夾和子文件夾。如果文件夾的類型是你想要的(你沒有指定如何識別該名稱,或許是?)複製文件。如果沒有,跳過。 – Nanne

+0

到目前爲止您嘗試過什麼?在問問題之前,請嘗試一下自己。你的編碼在哪裏 – Rithu

回答

1

既然你有一個靜態的文件夾結構,我建議只存儲不同subfold ERS在數組和循環通過到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"; 
    } 
} 

亞倫W.建議 ,也用於glob-php獲得遞歸路徑(文件夾1,文件夾2 ...) 即時把這個代碼並將文件放在與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>"; 
     } 
    } 
} 
+0

感謝您的答案..我有超過100個文件夾.. –

+0

如果有一個模式的文件夾結構,你可以生成所有的文件夾名稱與代碼...否則,沒有。 –

+0

我只是想,只會後取得成功的代碼該代碼 –