【问题标题】:php read a dir and rename foldersphp读取目录并重命名文件夹
【发布时间】:2019-02-07 18:32:58
【问题描述】:

我正在尝试浏览一个目录并将所有文件夹重命名为某个名称,并将原始文件夹名称附加到末尾。它可以工作,除了很多时候它在旧文件夹名称前面添加了我想要的标题 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);
}

还有他们的名字:

  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 9
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 11
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 7
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 6
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 1
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 10
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 8
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 4
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 3
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 12
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 2
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 13
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 5
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 Avengers Volume 2 9
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 Avengers Volume 2 11
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 Avengers Volume 2 7
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 Avengers Volume 2 1
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 Avengers Volume 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
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 Avengers Volume 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
  • /Volumes/COMICS/MOVED/Marvel Comics/Avengers/Volume 2/Avengers Volume 2 Avengers Volume 2 Avengers Volume 2 Avengers Volume 2 Avengers Volume 2 9

【问题讨论】:

    标签: php html macos readdir


    【解决方案1】:

    据我所知,句柄是一个指针——它指向的“数据”不是固定的,而是可以改变的。所以我猜当你在你的while循环中为文件夹添加前缀时,重命名的文件夹也会被你的while循环通过句柄识别并再次添加前缀。

    使用glob 可能会更好

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

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

    【讨论】:

    • 谢谢!新的我忘记了一些东西。
    猜你喜欢
    • 2014-07-12
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 2015-10-26
    • 2016-11-02
    相关资源
    最近更新 更多