簡體   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