PHP:用内容移动目录?

时间:2010-08-31 23:11:39

标签: php rename move

我有一个存储文件名和目录名的数组$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()方法不是找出它是否是目录的最佳方法,但是对于我的小项目来说没问题。我只需要知道如何将包含所有内容的任何目录移动到“files”文件夹中。

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

您必须使用globscandir获取该目录中的所有文件名。然后你必须通过重命名循环它们并移动它们。

你的另一个选择,如果你的主持人允许,那就是使用shell_exec并为linux执行mv或者为Windows命令执行copy / xcopy并将它们移动到办法。如果您选择exec路由,请确保保护输入等以防止发生任何不良事件。