Я пытаюсь переместить папку путем переименования его. И test1 и test2 папки уже существуют.
rename(
"test1",
"test2/xxx1/xxx2"
);
Ошибка, которую я получаю: переименуйте (...): Никакой такой файл или каталог
Я предполагаю, что это вызвано тем, что каталог "xxx1" не существует. Как я могу переместить test1 каталог так или иначе?
Возможно, вам потребуется создать каталог, в который он входит, например
$toName = "test2/xxx1/xxx2";
if (!is_dir(dirname($toName))) {
mkdir(dirname($toName), 0777, true);
}
rename("test1", $toName);
Третий параметр mkdir ()
- «рекурсивный», что означает, что вы можете создавать вложенные каталоги одним вызовом.
Я думаю, что test2 / xxx1 должен существовать, поэтому вам нужно будет использовать mkdir прежде чем переместить его.
Почему бы сначала не убедиться, что все родительские каталоги существуют, создав их? mkdir - использовать рекурсивный параметр.