переименуйте папку в подпапку с PHP

Я пытаюсь переместить папку путем переименования его. И test1 и test2 папки уже существуют.

rename(
 "test1",
 "test2/xxx1/xxx2"
);

Ошибка, которую я получаю: переименуйте (...): Никакой такой файл или каталог

Я предполагаю, что это вызвано тем, что каталог "xxx1" не существует. Как я могу переместить test1 каталог так или иначе?

13
задан Workoholic 16 April 2010 в 14:45
поделиться

3 ответа

Возможно, вам потребуется создать каталог, в который он входит, например

$toName = "test2/xxx1/xxx2";

if (!is_dir(dirname($toName))) {
    mkdir(dirname($toName), 0777, true);
}

rename("test1", $toName);

Третий параметр mkdir () - «рекурсивный», что означает, что вы можете создавать вложенные каталоги одним вызовом.

18
ответ дан 1 December 2019 в 22:38
поделиться

Я думаю, что test2 / xxx1 должен существовать, поэтому вам нужно будет использовать mkdir прежде чем переместить его.

0
ответ дан 1 December 2019 в 22:38
поделиться

Почему бы сначала не убедиться, что все родительские каталоги существуют, создав их? mkdir - использовать рекурсивный параметр.

2
ответ дан 1 December 2019 в 22:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: