php 读取目录并重命名文件夹

php read a dir and rename folders

我正在尝试遍历一个目录并将所有文件夹重命名为特定名称,并在末尾附加原始文件夹名称。除了很多时候它在旧文件夹名称前添加我想要的标题 2、3、4 次外,它仍然有效。文件夹原本是数字,我想在它们之前加一个标题。

代码:

$skip = array(".","..","...");

$dir = '/Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2';
$t = 'Avengers Volume 2';

if ($handle = opendir($dir)) {
    while (false !== ($entry = readdir($handle))) {
      if (!in_array($entry,$skip)) {
        $newName = $t." ".$entry;
        $ol = $dir."/".$entry;
        $nl = $dir."/".$newName;
        rename($ol,$nl);
      }
    }
    closedir($handle);
}

以及他们的名字:

据我所知,句柄是一个指针——它指向的 "data" 不是固定的,但可以改变。所以我猜想,当您在 while 循环中为文件夹添加前缀时,重命名的文件夹也会通过 while 循环的句柄识别并再次添加前缀。

您最好使用 glob

$folders = glob( $dir . '/*' , GLOB_ONLYDIR);

到return一个子目录数组,然后遍历数组以重命名所有条目。