PHP: перемещение каталогов с содержимым? - PullRequest
3 голосов
/ 01 сентября 2010

У меня есть массив $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 Ответ

4 голосов
/ 01 сентября 2010

Вам нужно получить все имена файлов в этом каталоге, используя glob или scandir.Тогда вам придется перебирать их с помощью переименования и перемещать их.

Другой вариант, если вы разрешаете хост, - использовать shell_exec и mv для linux или copy /xcopy для команды Windows и переместите их таким образом.Если вы выбираете маршрут exec, убедитесь, что входные данные и т. Д. Защищены от любых неприятностей.

...