繁体   English   中英

php读取目录并重命名文件夹

[英]php read a dir and rename folders

我正在尝试浏览目录,并将所有文件夹重命名为特定名称,并将原始文件夹名称附加到末尾。 它的工作原理除了很多次,它在旧文件夹名称前面添加了我想要的2、3、4次的标题。 文件夹最初是数字,我想在它们之前添加标题。

码:

$skip = array(".","..","...");

$dir = '/Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2';
$t = 'Avengers Volume 2';

if ($handle = opendir($dir)) {
    while (false !== ($entry = readdir($handle))) {
      if (!in_array($entry,$skip)) {
        $newName = $t." ".$entry;
        $ol = $dir."/".$entry;
        $nl = $dir."/".$newName;
        rename($ol,$nl);
      }
    }
    closedir($handle);
}

以及它们的名字:

  • /卷/漫画/电影/漫威漫画/复仇者/第2卷/复仇者第2卷9
  • /卷/漫画/电影/漫威漫画/复仇者联盟/第2卷/复仇者联盟第2卷11
  • /卷/漫画/移动/漫威漫画/复仇者/第2卷/复仇者第2卷7
  • /卷/漫画/移动/漫威漫画/复仇者/第2卷/复仇者第2卷6
  • / Volumes / COMICS / MOVED / Marvel Comics / Avengers / Volume 2 / Avengers Volume 2 1
  • /卷/漫画/电影/漫威漫画/复仇者/第2卷/复仇者联盟2 10
  • /卷/漫画/电影/漫威漫画/复仇者/第2卷/复仇者联盟2 8
  • /卷/漫画/电影/漫威漫画/复仇者/第2卷/复仇者第2卷4
  • /卷/漫画/电影/漫威漫画/复仇者/第2卷/复仇者联盟2 3
  • /卷/漫画/电影/漫威漫画/复仇者联盟/第2卷/复仇者联盟第2卷12
  • /卷/漫画/电影/漫威漫画/复仇者/第2卷/复仇者联盟2 2
  • /卷/漫画/电影/漫威漫画/复仇者/第2卷/复仇者第2卷13
  • /卷/漫画/电影/漫威漫画/复仇者/第2卷/复仇者联盟2 5
  • /卷/漫画/移动/漫威漫画/复仇者/第2卷/复仇者联盟2复仇者联盟2 9
  • /卷/漫画/电影/漫威漫画/复仇者/第2卷/复仇者联盟2复仇者联盟2 11
  • /卷/漫画/移动/漫威漫画/复仇者/卷2 /复仇者联盟2复仇者联盟2 7
  • /卷/漫画/移动/漫威漫画/复仇者/第2卷/复仇者联盟2复仇者联盟2 1
  • /卷/漫画/移动/漫威漫画/复仇者/第2卷/复仇者联盟2复仇者联盟2 10
  • / Volumes / COMICS / MOVED / Marvel Comics / Avengers / Volume 2 / Avengers Volume 2 Avengers Volume 2 4
  • / Volumes / COMICS / MOVED / Marvel Comics / Avengers / Volume 2 / Avengers Volume 2 Avengers Volume 2 3
  • / Volumes / COMICS / MOVED / Marvel Comics / Avengers / Volume 2 / Avengers Volume 2 Avengers Volume 2 2
  • /卷/漫画/移动/漫威漫画/复仇者/第2卷/复仇者联盟2复仇者联盟2 13
  • / Volumes / COMICS / MOVED / Marvel Comics / Avengers / Volume 2 / Avengers Volume 2 Avengers Volume 2 Avengers Volume 2 9
  • / Volumes / COMICS / MOVED / Marvel Comics / Avengers / Volume 2 / Avengers Volume 2 Avengers Volume 2 Avengers Volume 2 7
  • / Volumes / COMICS / MOVED / Marvel Comics / Avengers / Volume 2 / Avengers Volume 2 Avengers Volume 2 Avengers Volume 2 3
  • / Volumes / COMICS / MOVED / Marvel Comics / Avengers / Volume 2 / Avengers Volume 2 Avengers Volume 2 Avengers Volume 2 Avengers Volume 2 9
  • /卷/漫画/移动/漫威漫画/复仇者/第2卷/复仇者第2卷复仇者联盟第2卷复仇者联盟第2卷复仇者联盟第2卷复仇者联盟第2卷9

据我了解,句柄是一个指针-它指向的“数据”不是固定的,但可以更改。 所以我猜想,当您在while循环中为文件夹添加前缀时,重命名的文件夹也将通过while循环通过句柄进行标识,并再次加上前缀。

使用glob可能会更好

$folders = glob( $dir . '/*' , GLOB_ONLYDIR);

返回子目录数组,然后循环遍历数组以重命名所有条目。

暂无
暂无

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

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