1

我需要一个脚本来将文件复制到特定文件夹中的每个目录和子目录。

在一个名为“项目”的文件夹中,我有几个文件夹,其中有几个文件夹(等等),我需要一个脚本来检查该文件夹中是否有特定文件,如果存在,则什么也不做,如果没有,复制它.

我需要在 php 中执行此操作...

你能帮我吗?

4

2 回答 2

1

我希望这段代码可以帮助你实现你想要的

$maindir=".";
mylistFolderFiles($maindir);
function mylistFolderFiles($dir){
  $file = 'example.txt';
  $ffs = scandir($dir);
  foreach($ffs as $ff){
    if($ff != '.' && $ff != '..'){
        if(is_dir($dir.'/'.$ff)) {
            $newfile=$dir.'/'.$ff .'/'. $file ;
            if (!copy($file, $newfile)) {
                echo "failed to copy $file...\n";
            }
            mylistFolderFiles($dir.'/'.$ff);
      } 
    }

  }

}
于 2012-10-04T17:15:04.010 回答
1

这会将所有文件、所有文件夹及其内容...从 cunnrent 目录复制到目标 .. 使用RecursiveDirectoryIteratorRecursiveIteratorIterator

echo "<pre>";
mkdirRecursive($target);
if (! is_writable($target)) {
    echo "You don't have permission wo write to ", $target, PHP_EOL;
}
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));
while ( $it->valid() ) {
    if (! $it->isDot()) {
        $name = $it->key();
        $final = $target . str_replace($dir, "", $name);
        if (! mkdirRecursive(dirname($final))) {
            echo "Can Create Directory : ", dirname($final), PHP_EOL;
            continue;
        }
        if (! @copy($name, $final)) {
            echo "Can't Copy : ", dirname($final), PHP_EOL;
            continue;
        }
        echo "Copied ", basename($name), " to ", dirname($final), PHP_EOL;
    }
    $it->next();
}

function mkdirRecursive($pathname, $mode = 0777) {
    is_dir(dirname($pathname)) || mkdirRecursive(dirname($pathname), $mode);
    return is_dir($pathname) || @mkdir($pathname, $mode);
}
于 2012-10-04T17:16:41.517 回答