刪除包含文件的目錄?我想知道,刪除目錄中包含所有文件的最簡單方法是什么?我正在使用rmdir(PATH . '/' . $value);刪除文件夾,但是,如果其中有文件,我根本無法刪除它。
3 回答

吃雞游戲
TA貢獻(xiàn)1829條經(jīng)驗 獲得超7個贊
現(xiàn)在至少有兩種選擇。
在刪除文件夾之前,刪除它的所有文件和文件夾(這意味著遞歸?。?。這是一個例子:
public static function deleteDir($dirPath) { if (! is_dir($dirPath)) { throw new InvalidArgumentException("$dirPath must be a directory"); } if (substr($dirPath, strlen($dirPath) - 1, 1) != '/') { $dirPath .= '/'; } $files = glob($dirPath . '*', GLOB_MARK); foreach ($files as $file) { if (is_dir($file)) { self::deleteDir($file); } else { unlink($file); } } rmdir($dirPath);}
如果你使用的是5.2+,你可以使用RecursiveIterator來完成它而不需要自己進(jìn)行遞歸:
$dir = 'samples' . DIRECTORY_SEPARATOR . 'sampledirtree';$it = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS);$files = new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST);foreach($files as $file) { if ($file->isDir()){ rmdir($file->getRealPath()); } else { unlink($file->getRealPath()); }}rmdir($dir);

MMMHUHU
TA貢獻(xiàn)1834條經(jīng)驗 獲得超8個贊
我通常用它來刪除文件夾中的所有文件:
array_map('unlink', glob("$dirname/*.*"));
然后你就可以做到
rmdir($dirname);
- 3 回答
- 0 關(guān)注
- 400 瀏覽
添加回答
舉報
0/150
提交
取消