2011-03-28 61 views
0

我有一個txt文件,其中列出了一些要從服務器中刪除的文件夾(用逗號分隔)。在PHP中使用rmdir刪除文件夾

TXT文件包含例如:

文件夾1,文件夾1 /資料夾,文件夾1 /文件夾2/folder3

我試圖用rmdir來刪除所有文件夾。問題是rmdir不會刪除文件夾,如果裏面有任何文件夾,並且txt文件可惜以錯誤的順序列出文件夾。

任何解決方案? (文件夾將不包含任何文件)

下面是代碼:

$text_file = "folders.txt"; 

$all_folders_separated_by_comma = file_get_contents($text_file); 

function not_empty_string($s) { return $s !== ""; } 

$separate_all_folders = array_filter(explode(',', $all_folders_separated_by_comma), 'not_empty_string'); 

foreach ($separate_all_folders as $folder) { 
rmdir($folder); 
} 
+0

可能重複的[PHP遞歸移除目錄函數?](http://stackoverflow.com/questions/1407338/a-recursive-remove-directory-function-for-php) – Jon 2011-03-28 23:15:04

+0

還有許多其他愚蠢的這在SO上。只需檢查右側的「相關」側欄並選擇即可。 – Jon 2011-03-28 23:15:31

+0

如果它只是(嵌套的)文件夾,而不是文件夾本身的文件,那麼您可以'rsort($ separate_all_folders);' – Wrikken 2011-03-28 23:17:48

回答

1

一種方法是反向排序文件夾陣列 rsort固定的順序。然後檢查文件名確實是is_dir的文件夾。

+0

啊,一個腦海:) – Wrikken 2011-03-28 23:19:05

+0

感謝您的回答!結束使用第一個答案:http://stackoverflow.com/questions/1833518/remove-empty-subfolders-with-php – Hakan 2011-03-28 23:32:23