在我的FTP中,我有这样的文件夹结构:
mainfolder
- subfolder1
- something_01.jpg
- something02.jpg
- subfolder2
- 23123.jpg
- 12345.jpg
and so on..
我正在尝试重命名子文件夹中的每个文件,首先按字母顺序排列文件,然后重命名为1.jpg,2.jpg,3.jpg等等。这是我的代码,当我运行它时,它实际上删除了我的子文件夹文件!我错过了什么吗?
$directory = 'mypath';
if ($handle = opendir('mypath')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
$dirFiles = array();
if ($handles = opendir($directory.$entry.'/')) {
while (false !== ($file = readdir($handles))) {
if ($file != "." && $file != "..") {
$dirFiles[] = $file;
}
}
closedir($handles);
}
sort($dirFiles);
$i = 1;
foreach($dirFiles as $file)
{
$fileParts = pathinfo($file);
$fileExt = $fileParts['extension'];
$newName = $i . '.' . $fileExt;
rename($directory.$entry.'/'.$file, $directory.$entry.'/'.$newName);
$i++;
}
unset($dirFiles);
}
}
closedir($handle);
}
如果我在重命名函数
之前添加了“echo”,那么这是一个循环输出rename(path/.0001.'/'.00.jpg, path/.0001.'/'.1.jpg)
rename(path/.0001.'/'.01.jpg, path/.0001.'/'.2.jpg)
rename(path/.0001.'/'.02.jpg, path/.0001.'/'.3.jpg)
rename(path/.0001.'/'.03.jpg, path/.0001.'/'.4.jpg)
rename(path/.0001.'/'.04.jpg, path/.0001.'/'.5.jpg)
rename(path/.0001.'/'.05.jpg, path/.0001.'/'.6.jpg)
rename(path/.0001.'/'.06.jpg, path/.0001.'/'.7.jpg)
rename(path/.0001.'/'.07.jpg, path/.0001.'/'.8.jpg)
rename(path/.0001.'/'.08.jpg, path/.0001.'/'.9.jpg)
rename(path/.0001.'/'.09.jpg, path/.0001.'/'.10.jpg)
rename(path/.0001.'/'.10.jpg, path/.0001.'/'.11.jpg)
rename(path/.0001.'/'.11.jpg, path/.0001.'/'.12.jpg)
rename(path/.0001.'/'.12.jpg, path/.0001.'/'.13.jpg)
rename(path/.0001.'/'.13.jpg, path/.0001.'/'.14.jpg)
rename(path/.0001.'/'.14.jpg, path/.0001.'/'.15.jpg)
rename(path/.0001.'/'.15.jpg, path/.0001.'/'.16.jpg)
rename(path/.0001.'/'.16.jpg, path/.0001.'/'.17.jpg)
rename(path/.0001.'/'.17.jpg, path/.0001.'/'.18.jpg)
rename(path/.0001.'/'.20.jpg, path/.0001.'/'.19.jpg)
rename(path/.0001.'/'.21.jpg, path/.0001.'/'.20.jpg)
rename(path/.0001.'/'.22.jpg, path/.0001.'/'.21.jpg)
rename(path/.0001.'/'.23.jpg, path/.0001.'/'.22.jpg)
rename(path/.0001.'/'.24.jpg, path/.0001.'/'.23.jpg)
rename(path/.0001.'/'.25.jpg, path/.0001.'/'.24.jpg)
rename(path/.0001.'/'.26.jpg, path/.0001.'/'.25.jpg)
rename(path/.0001.'/'.27.jpg, path/.0001.'/'.26.jpg)
rename(path/.0001.'/'.28.jpg, path/.0001.'/'.27.jpg)
rename(path/.0001.'/'.29.jpg, path/.0001.'/'.28.jpg)
rename(path/.0001.'/'.30.jpg, path/.0001.'/'.29.jpg)
rename(path/.0001.'/'.31.jpg, path/.0001.'/'.30.jpg)
rename(path/.0001.'/'.32.jpg, path/.0001.'/'.31.jpg)
rename(path/.0001.'/'.33.jpg, path/.0001.'/'.32.jpg)
rename(path/.0001.'/'.Thumbs.db, path/.0001.'/'.33.db)
rename(path/.0002.'/'.00.jpg, path/.0002.'/'.1.jpg)
rename(path/.0002.'/'.01.jpg, path/.0002.'/'.2.jpg)
rename(path/.0002.'/'.02.jpg, path/.0002.'/'.3.jpg)
rename(path/.0002.'/'.03.jpg, path/.0002.'/'.4.jpg)
rename(path/.0002.'/'.04.jpg, path/.0002.'/'.5.jpg)
rename(path/.0002.'/'.05.jpg, path/.0002.'/'.6.jpg)
rename(path/.0002.'/'.06.jpg, path/.0002.'/'.7.jpg)
rename(path/.0002.'/'.07.jpg, path/.0002.'/'.8.jpg)
rename(path/.0002.'/'.08.jpg, path/.0002.'/'.9.jpg)
rename(path/.0002.'/'.09.jpg, path/.0002.'/'.10.jpg)
rename(path/.0002.'/'.10.jpg, path/.0002.'/'.11.jpg)
rename(path/.0002.'/'.11.jpg, path/.0002.'/'.12.jpg)
rename(path/.0002.'/'.12.jpg, path/.0002.'/'.13.jpg)
rename(path/.0002.'/'.13.jpg, path/.0002.'/'.14.jpg)
rename(path/.0002.'/'.14.jpg, path/.0002.'/'.15.jpg)
rename(path/.0002.'/'.15.jpg, path/.0002.'/'.16.jpg)
rename(path/.0002.'/'.16.jpg, path/.0002.'/'.17.jpg)
rename(path/.0002.'/'.17.jpg, path/.0002.'/'.18.jpg)
rename(path/.0002.'/'.18.jpg, path/.0002.'/'.19.jpg)
rename(path/.0002.'/'.19.jpg, path/.0002.'/'.20.jpg)
rename(path/.0002.'/'.20.jpg, path/.0002.'/'.21.jpg)
rename(path/.0002.'/'.21.jpg, path/.0002.'/'.22.jpg)
rename(path/.0002.'/'.22.jpg, path/.0002.'/'.23.jpg)
rename(path/.0002.'/'.23.jpg, path/.0002.'/'.24.jpg)
rename(path/.0002.'/'.24.jpg, path/.0002.'/'.25.jpg)
rename(path/.0002.'/'.25.jpg, path/.0002.'/'.26.jpg)
rename(path/.0002.'/'.26.jpg, path/.0002.'/'.27.jpg)
rename(path/.0002.'/'.27.jpg, path/.0002.'/'.28.jpg)
rename(path/.0002.'/'.28.jpg, path/.0002.'/'.29.jpg)
rename(path/.0002.'/'.29.jpg, path/.0002.'/'.30.jpg)
rename(path/.0002.'/'.30.jpg, path/.0002.'/'.31.jpg)
rename(path/.0002.'/'.31.jpg, path/.0002.'/'.32.jpg)
rename(path/.0002.'/'.32.jpg, path/.0002.'/'.33.jpg)
rename(path/.0002.'/'.Thumbs.db, path/.0002.'/'.34.db)
答案 0 :(得分:0)
删除内容的原因是因为原始文件名具有与新命名系统类似的命名系统。例如:
rename(path/.0001.'/'.09.jpg, path/.0001.'/'.10.jpg)
将09.jpg重命名为10.jpg ..如果10.jpg存在..它将被删除并替换为09.jpg但文件名将为10.jpg。 解决问题..我不得不将文件复制到另一个目录,更快,更安全。