使用php重命名文件夹列表中的内容

时间:2014-11-27 07:57:17

标签: php

在我的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)

1 个答案:

答案 0 :(得分:0)

删除内容的原因是因为原始文件名具有与新命名系统类似的命名系统。例如:

rename(path/.0001.'/'.09.jpg, path/.0001.'/'.10.jpg)

将09.jpg重命名为10.jpg ..如果10.jpg存在..它将被删除并替换为09.jpg但文件名将为10.jpg。 解决问题..我不得不将文件复制到另一个目录,更快,更安全。