特定のフォルダー内のすべてのディレクトリとサブディレクトリにファイルをコピーするためのスクリプトが必要です。
'projects'というフォルダー内に、いくつかのフォルダーが含まれるフォルダーがいくつかあります(など)。そのフォルダーに特定のファイルがあるかどうかを確認するスクリプトが必要です。存在する場合は何もしません。存在しない場合は、コピーします。 。
私はこれをphpで行う必要があります...
手伝ってくれますか?
私はこのコードがあなたが望むもののためにあなたを助けることができることを願っています
$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);
}
}
}
}
RecursiveDirectoryIterator
これにより、すべてのファイル、すべてのフォルダ、およびそのコンテンツがcunnrentディレクトリからターゲットにコピーされます。RecursiveIteratorIterator
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);
}