使用PHP将文件夹重命名为子文件夹

Wor*_*lic 13 php directory rename

我正在尝试通过重命名来移动文件夹.test1和test2文件夹都已存在.

rename(
 "test1",
 "test2/xxx1/xxx2"
);
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:重命名(...):没有这样的文件或目录

我认为这是因为目录"xxx1"不存在.我怎么能移动test1目录呢?

Tom*_*igh 18

您可能需要创建它要进入的目录,例如

$toName = "test2/xxx1/xxx2";

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

rename("test1", $toName);
Run Code Online (Sandbox Code Playgroud)

第三个参数mkdir()是'递归',这意味着您可以通过一次调用创建嵌套目录.


And*_*lam 2

为什么不首先通过创建父目录来确保所有父目录都存在? mkdir - 使用递归参数。