【发布时间】:2012-09-06 18:05:35
【问题描述】:
我是 PHP 新手,我正在尝试做一些类似于 user580950 在 Bulk Rename Files in a Folder - PHP 询问的事情。
我想编写一个脚本,它将遍历给定目录中所有文件和目录的名称并做两件事:用破折号替换空格并将所有大写字母转换为小写。
根据上述问题的答案,以及所需功能的 PHP 手册条目,我想出了以下代码:
if ($handle = opendir('/Users/username/Documents/School')) {
while (false !== ($file_name = readdir($handle))) {
$to_lower = strtolower($file_name);
$add_dashes = str_replace(" ", "-", $to_lower);
rename($file_name , $add_dashes);
}
closedir($handle);
}
此代码为目标目录中的每个文件/目录返回以下错误:
警告:重命名(THE 273,the-273):没有这样的文件或目录 /Users/username/Sites/PHP/rename_files_in_directory.php 在第 8 行
我尝试过以各种方式重新安排事情,但我完全不知道问题出在哪里。我在 Mac OSX.6.8 上运行 PHP 5.3.8 。
我们将不胜感激!
【问题讨论】:
-
您是否需要将完整的文件路径放入对
rename()的调用中? -
我不这么认为,因为我以为是opendir()函数打开了目录,但也许这就是问题
标签: php