PHP在父目录和子目录之间插入新目录

时间:2013-03-03 20:17:58

标签: php directory rename

我有一个父目录:

"path/to/dir"

在这个父目录中,我有几个子目录:

"dir/subA"
"dir/subB"
"dir/subC"

我想将所有这些子目录移动到中间目录“foo”中,以便最终结果应该是:

"path/to/dir/foo/subA" 
"path/to/dir/foo/subB"
"path/to/dir/foo/subC"

我该如何做到这一点?

1 个答案:

答案 0 :(得分:1)

使用tempnamunlinkstat mkdirrename功能。

您可以使用opendir和readdir遍历目录然后生成/ foo,并一次移动一个目录。但是有一种更简单的方法也更快。

  1. 使用tempnam在“path / to”中获取临时文件的唯一名称。
  2. 使用stat获取“path / to / dir”
  3. 的权限
  4. tempnam创建一个具有唯一名称的文件。使用unlink删除此文件,然后使用mkdir和stat()的结果创建一个新目录,其中包含tempnam返回的唯一临时名称
  5. 使用重命名将“path / to / dir”移动到“path / to / tempdir / foo”
  6. 使用重命名将“path / to / tempdir”更改为“path / to / dir”