0

我有一个文件夹,里面有几张图片。

文件夹是photos_1/130730782

图像是

.jpg
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg

我需要像这样重命名文件

.jpg  = 1.jpg
1.jpg = 2.jpg
2.jpg = 3.jpg
3.jpg = 4.jpg
4.jpg = 5.jpg
5.jpg = 6.jpg
6.jpg = 7.jpg

我正在使用这段代码:

$sysid = '130730782';
    $dir = 'photos_1/'.$sysid;

    $myPhotoCount = iterator_count(new DirectoryIterator($dir)) - 1;

    for($i=0; $i<=count($myPhotoCount); $i++){
        $x = $i + 1;
        if($i == 0){
            rename("{$dir}/.jpg", "{$dir}/1.jpg");
        }else{
            rename("{$dir}/{$i}.jpg", "{$dir}/{$x}.jpg");
        }
    }

我收到此错误:

警告:rename(photos_1/130730782/.jpg,photos_1/130730782/1.jpg) [function.rename]: No such file or directory in /home/content/85/6608485/html/McCloskey/rename.php on line 18

警告:重命名(photos_1/130730782/1.jpg,photos_1/130730782/2.jpg)[function.rename]:在线/home/content/85/6608485/html/McCloskey/rename.php中没有这样的文件或目录20

我知道该文件存在,我在这里做错了什么?

4

3 回答 3

4

您需要以相反的顺序重命名这些文件。

如果将 .jpg 重命名为 1.jpg,则原始 1.jpg 可能会丢失/覆盖。

从最大的数字开始,然后倒退。

于 2013-08-09T19:33:45.753 回答
1

将其重命名如下:

.jpg --> 1.jpeg

1.jpg --> 2.jpeg

等等...

它不会对您的文件进行任何更改,因为JPG 和 JPEG 是相同的,并且不会丢失/覆盖。

于 2013-08-09T19:49:07.100 回答
0

我最终使用 copy() 将文件复制到另一个目录并在此过程中重命名它们。

于 2013-08-12T17:49:16.893 回答