繁体   English   中英

如何在子目录中使用子目录名称的前缀重命名所有文件,然后将文件移动到新目录?

[英]How can I rename all files in sub-directories with prefix of sub-directory name and then move files to new directory?

我基本上有这样的设置:

C:\Upload\A
C:\Upload\B
C:\Upload\C
C:\Upload\D
C:\Upload\E

其中A,B,C,D,E始终是不同的(产品ID),并且始终是不同的数量(它不一定是5个子目录)。 这些子目录中的每一个包含24个图像,编号为01-24。

我需要创建一个通过Web(IIS)远程运行的PHP文件,该文件查看Upload目录,获取每个子目录的名称,并将该名称附加到该子目录中包含的每个图像文件的开头。

因此, C:\\Upload\\A\\01.jpg以及每个子目录中的其他23张图像都将变成C:\\Upload\\A\\A-O1.jpg

PHP文件需要对Upload目录中的每个子目录执行相同的操作。

然后,重命名完成后,PHP需要将所有目录(及其图像)从Upload目录复制到另一个目录。 复制后,需要清除上载目录。

这应该工作:

<?php
    define('START_DIR', '/opt/lampp/htdocs/start');
    define('DEST_DIR', '/opt/lampp/htdocs/dest');
    define('SEPARATOR', '\\');

    function firstStage() {
        $d = dir(START_DIR);
        while (false !== ($entry = $d->read())) {
            if($entry != '.' && $entry != '..')
                secondStage($entry);
        }
        $d->close();
    }

    function secondStage($prefix) {
        $d = dir(START_DIR . SEPARATOR . $prefix);
        while (false !== ($entry = $d->read())) {
            if($entry != '.' && $entry != '..')
                rename(START_DIR . SEPARATOR . $prefix . SEPARATOR . $entry, DEST_DIR . SEPARATOR . $prefix . '-' . $entry);
        }
        $d->close();
    }

    firstStage();
?>

只需调用firstStage()即可开始该过程。 确保您具有对START_DIRDEST_DIR读/写访问权限

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM