试图重命名目录(PHP)中的所有文件时出错


Error when attempting to rename all the files in a directory (PHP)

我正在用PHPStorm在我的电脑上练习PHP。我有一个目录的图像,我放在我的项目。这些图片是从一个网页上截取的,它们的名字都是"attachment_56602224.jpg."为了简单起见,我想将它们重命名为所有数字(如1.jpg, 2.jpg)。以下是目前为止的内容:

$i = 1;
if ($handle = opendir('pics')) {
while (false !== ($fileName = readdir($handle))) {
    rename($fileName, $i);
    $i++;
}
closedir($handle);
}

下面是我在浏览器中运行它时得到的错误:

警告:rename(.,1):该进程不能访问该文件,因为它正在被另一个进程使用。(code: 32) in C:'Users'Mike'PhpstormProjects'php'learn.php第12行

警告:rename(..,2): Access is denied。(代码:5)在C:'Users'Mike'PhpstormProjects'php'learn.php第12行

Warning: rename(attachment_56602224.jpg,3):系统无法找到指定的文件。(代码:2)在C:'Users'Mike'PhpstormProjects'php'learn.php第12行

您应该做的第一件事是检查您正在读取的文件是否有效地是文件而不是目录,您还应该使用源文件和目标文件的相对路径来重命名。在该代码片段中,您试图重命名项目根目录中的文件,而不是"pics"子文件夹中的文件。