2013-03-03 42 views
-1

之间新的目录我有一个父目录:PHP插入家长和子目录

"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" 

如何ca ñ我完成了这个?

+0

这是一个一次性的事情,或者它要接收目录名称为参数?目录'dir'是否包含任何不应该移动到中间目录的文件? – 2013-03-03 20:21:22

回答

1

使用tempnam,unlink,statmkdirrename功能。

您可以使用opendir和readdir循环访问目录,然后使/ foo,并每次移动一个目录。但是有一种更简单的方法也更快。

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