2013-03-03 56 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’到‘路徑/到/目錄’