3

我有一个$bundle存储文件名和目录名的数组。

我正在使用 foreach 循环遍历数组,我想将它们移动到另一个目录中。因此,我正在使用重命名方法,它与 JUST FILES 一起工作得很好。

但是,其中包含其他文件的目录不响应该rename()方法。

$folder =  'files';
foreach ($bundle as $value) {
    $ext = pathinfo($value, PATHINFO_EXTENSION);
    if ($ext != "") { //if $value has no suffix it's a fil
        rename(PATH . '/' .$value, $folder . '/' . $value);
    }

    if ($ext == "") { // it's a folder/directory
        //rename doesn't work for directories with contents
        //what method should i use here???
    }

}

我知道该pathinfo()方法不是确定它是否是目录的最佳方法,但是对于我的小项目来说它很好。我只需要知道如何将包含所有内容的任何目录移动到“文件”文件夹中。

谢谢您的帮助。

4

1 回答 1

4

您必须使用glob或获取该目录中的所有文件名scandir。然后你必须用重命名遍历它们并移动它们。

如果您的主机允许,您的另一个选择是使用shell_exec并执行mvfor linux 或copy/ xcopyfor windows 命令并以这种方式移动它们。如果您选择 exec 路线,请确保保护输入等以防止发生任何不良事件。

于 2010-08-31T23:23:15.347 回答