使用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)
酸菜

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何重命名带有内容的文件夹?-PHP

使用zmv重命名子文件夹中的文件

使用Matlab重命名文件夹中的文件

php文件重命名和文件夹重命名

目录中的PHP重命名文件夹

如何使用PHP重命名文件夹?

重命名文件夹中的文件

重命名文件夹中的文件

PHP:如何重命名文件夹

使用gsutil重命名GCS中的文件夹

如何使用PowerShell根据每个文件中的特定内容重命名文件夹中的文件?

重命名文件夹中的文件,而无需使用Java重命名扩展名

在Python中重命名文件夹

使用 VBA 重命名文件夹

使用父文件夹的名称重命名子文件夹中的文件

使用子文件夹标签重命名子文件夹中的文件

根据文件内容重命名文件文件夹

使用文件夹名称重命名文件夹中的所有图像

遍历文件夹并使用文件夹名称顺序重命名每个文件夹中的所有文件

根据文件内容重命名文件夹中的所有txt文件

如果匹配文件的内容,则重命名大量文件夹

重命名文件夹中的所有文件也重命名子文件夹

通过R中的列表重命名文件夹中的文件

提取目录中的文件夹名称列表后,如何使用Python以其他格式重命名它们?

如何按照列表顺序重命名文件夹中的几个文件

如何使用文件夹名称重命名文件列表

使用 R 中的函数从多个文件夹中复制相同的文件并根据文件夹结构重命名文件

根据列表重命名多个文件夹

使用Excel中的名称映射,使用Python重命名文件夹中的文件