PHP strtoupper批量更改目录中的文件名

时间:2017-05-18 14:52:48

标签: php

我试图将目录中的所有文件名更改为大写,但没有发生任何事情。文件名保持不变。这包括文件名和扩展名。我打开了错误报告,这是我收到的唯一警告:

  

警告:重命名(Parts /。,Parts /。):第9行/var/www/site/img/upper.php中设备或资源繁忙

     

警告:重命名(Parts / ..,Parts / ..):第9行/var/www/site/img/upper.php中设备或资源繁忙

所需结果示例:abc.bmp - > ABC.BMP

代码:

<?php
 ini_set("display_startup_errors", 1); 
 ini_set("display_errors", 1);
 $directory="Parts";
 $files = scandir($directory);
 foreach($files as $key=>$name){
    $oldName = $name;
    $newName = strtoupper($name);
    rename("$directory/$oldName","$directory/$newName");
  }
?>

1 个答案:

答案 0 :(得分:1)

您正在尝试移动与目录相关的元信息,请勿尝试将...作为文件移动。

  • 单个句点.表示当前工作目录。
  • 双倍期..表示当前工作目录的父级。

    $directory = "Parts";
    $files = scandir($directory);
    foreach($files as $name){
        if ($name == '.' || $name == '..') {
           continue;
        }
        $newName = strtoupper($name);
        rename("$directory/$name", "$directory/$newName");
    }