繁体   English   中英

在目录中递归搜索所有文件夹路径

[英]Recursively Search within a directory for all folder paths

我试图递归地在目录中搜索子目录的任何目录中的所有子目录。 基本上所有文件夹都从根目录开始,我需要将文件复制到找到的所有文件夹以及主根文件夹中。 我怎样才能做到这一点?

这是我到目前为止的内容,但是它需要完全递归,以便获取该根目录中的所有文件夹,子目录中的文件夹以及该目录中的文件夹,进行无休止的搜索,直到不再有其他文件夹为止。

@copy($extendVars['dir'] . '/index.php', $real_extendpath . '/index.php');

$dh = @opendir($real_extendpath);
while (false !== ($obj = readdir($dh)))
{
    if ($obj == '.' || $obj == '..')
        continue;

    if (is_dir($real_extendpath . '/' . $obj))
        @copy($extendVars['dir'] . '/index.php', $real_extendpath . '/' . $obj . '/index.php');
}

closedir($dh);

使用RecursiveDirectoryIterator和标准PHP库( docs )中的朋友,仅需目录的文件系统上的RecursiveDirectoryIterator就非常容易。

一个基本的例子看起来像

$directories = new RecursiveIteratorIterator(
    new ParentIterator(new RecursiveDirectoryIterator($directory_to_iterate)), 
    RecursiveIteratorIterator::SELF_FIRST);

foreach ($directories as $directory) {
    // Do your work here
}

为了满足您的特殊需求, // Do your work here在以下代码段中// Do your work here即可。

copy($extendedVars['dir'] . '/index.php', $directory . '/index.php');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM