2011-11-12 23 views
1

可能重複:
How do I recursively delete a directory and its entire contents (files+sub dirs) in PHP?
PHP: delete directory with files in it?刪除的所有文件的目錄裏面

我有一個網站,我必須存儲不同格式的四象工作通過在指定文件夾中創建一個目錄。我已經創建了目錄並將圖像插入到目錄中。現在我的問題是我無法刪除所有圖像的目錄。

假設我有,

$path = "offer_pic/"; 

$directory = $r2['shop_name']; 

$realpath=$path.$directory.'/'; 

如何刪除裏面所有$realpath的圖像,以及目錄本身($directory)?

回答

3

這將做到這一點,只是要小心你不刪除整個服務器:

$dir='your/directory'; 
exec('rm -rf '.escapeshellarg($dir)); 
+1

不要忘記逃避'escapeshellarg($ dir)'是超級安全的。 –

+0

毫無疑問,這隻能在* nix盒子上使用。 – nickb

+0

嗨,謝謝你的迴應。其實我有一個名爲Offerspics的目錄,裏面有幾個目錄,比如a,b,c,d。現在在每個目錄中我有4個圖像。現在我可以刪除所有圖像,但在刪除圖像後,我必須刪除特定的目錄。按照例子,如果我必須刪除目錄中的所有圖像,那麼我也必須刪除目錄。 – bid

0

好吧,遺憾的是,至少沒有寫一個循環來做同樣的事情,我知道沒有方法。我或多或少比O.S更確定他們自己通過首先刪除文件來刪除文件夾,希望他們有一個預定義的子程序來完成它。 (像MS Dos中的delTree刪除一個文件夾和其中的所有文件)。

我最好的選擇是使用下面的代碼片段到一個函數中,並簡單地調用它傳遞參數作爲文件夾名稱。進行這些更改,你應該做一個簡單的調用,如delTree(C:\ Program Files)來刪除整個文件夾。 :)

$dir = 'your/directory/'; 
foreach(glob($dir.'*.*') as $v){ 
    unlink($v); 
} 
+0

您好,感謝您的答覆。其實我有一個名爲Offerspics的目錄,裏面有幾個目錄,比如a,b,c,d。現在在每個目錄中我有4個圖像。現在我可以刪除所有圖像,但在刪除圖像後,我必須刪除特定的目錄。按照例子,如果我必須刪除目錄中的所有圖像,那麼我也必須刪除目錄。 – bid

相關問題