我有一个文件夹,里面有几个图像
文件夹为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");
}
}
我得到这个错误:
警告:重命名(photos_1/13070782/.jpg,photos_1/10070782/1.jpg)[function.rename]:中没有这样的文件或目录/home/content/85/66608485/html/Mcloskey/rename.php,第18行
警告:重命名(photos_1/13070782/1.jpg,photos_1/10070782/2.jpg)[function.rename]:中没有这样的文件或目录/home/content/85/66608485/html/Mcloskey/rename.php在线20
我知道文件存在,我在这里做错了什么?
您需要以相反的顺序重命名这些文件。
如果将.jpg重命名为1.jpg,则原始的1.jpg可能会丢失/被覆盖。
从最高的数字开始,然后倒退。
按如下方式重新制作:
.jpg --> 1.jpeg
1.jpg --> 2.jpeg
等等…
它不会对您的文件进行任何更改,因为JPG和JPEG是相同的,并且不会丢失/覆盖。
我最终使用了copy()将文件复制到另一个目录,并在此过程中重命名它们。