Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php读取目录并重命名文件夹_Php_Html_Macos_Readdir - Fatal编程技术网

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

php读取目录并重命名文件夹,php,html,macos,readdir,Php,Html,Macos,Readdir,我试图遍历一个目录,并将所有文件夹重命名为某个名称,并将原始文件夹名称附加到末尾。除了在旧文件夹名称前添加我想要的标题2、3、4次外,它可以正常工作。文件夹最初是数字,我想在它们之前添加一个标题 代码: 还有他们的名字: /Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2/Avengers Volume 2 9/Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2 11/Volumes/C

我试图遍历一个目录,并将所有文件夹重命名为某个名称,并将原始文件夹名称附加到末尾。除了在旧文件夹名称前添加我想要的标题2、3、4次外,它可以正常工作。文件夹最初是数字,我想在它们之前添加一个标题

代码:

还有他们的名字:


  • /Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2/Avengers Volume 2 9
  • /Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2 11
  • /Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2 7/Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2/Avengers Volume 2/Avengers Volume 26
  • /Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2/Avengers Volume 2 1
  • /Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2 10/Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2/Avengers Volume 2 84
  • /Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2/Avengers Volume 2 3
  • /Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2/Avengers Volume 2/Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2/Avengers Volume 2
  • /Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2/Avengers Volume 2 5
  • /Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2/Avengers Volume 2 9/Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2/Avengers Volume 2/Avengers Volume 2 Avengers Volume 2 112/复仇者第2卷复仇者第27卷/卷/漫画/移动/惊奇漫画/复仇者/卷2/复仇者第2卷复仇者第21卷/卷/漫画/移动/惊奇漫画/复仇者/卷2/复仇者第2卷复仇者第210卷/卷/漫画/移动/惊奇漫画/复仇者/卷2/复仇者第2卷复仇者第2卷复仇者第2卷4
  • /Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2/Avengers Volume 2/Avengers Volume 2 3
  • /Volumes/COMICS/MOVED/Avengers/Volume 2/Avengers Volume 2/Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2/Avengers Volume 2/Avengers Volume 2 13漫画/复仇者/第2卷/复仇者第2卷复仇者第2卷复仇者第29卷/Volumes/Comics/MOVED/Marvel漫画/复仇者/第2卷/复仇者第2卷复仇者第2卷复仇者第27卷/li>/Volumes/Comics/MOVED/Marvel漫画/复仇者/第2卷/复仇者第2卷复仇者第2卷复仇者第2卷3
  • /Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Volume 2/Avengers Volume 2 Avengers Volume 2 Avengers Volume 2 Avengers Volume 2 Avengers Volume 2 Avengers Volume 2 Avengers Volume 2 Avengers Volume 2 9
  • /Volumes/COMICS/MOVED/Marvel COMICS/Avengers/Avengers/Volume 2/Avengers Volume 2 Avengers Volume 2/Avengers Volume 2 Avengers Vol它所指向的“数据”不是固定的,而是可以改变的。所以我猜,当您在while循环中为文件夹添加前缀时,重命名的文件夹也会通过句柄被while循环识别并再次添加前缀

    你最好使用

    $folders=glob($dir./*”,glob_ONLYDIR)


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

    谢谢!新的,我忘了什么。
    $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);
    }