最近要做一個清空緩存的功能,就琢磨了下
寫了一個簡單的刪除文件夾的方法,由於並沒有太多對文件的操作,也就沒封裝成類,有需要的可以拿去,或者完善下,代碼如下:
/**
* @param $dir string 文件夾名稱
* @param bool $status bool 是否刪除文件夾
*/
function delDirFile($dir,$status=false)
{
$handle = opendir($dir);
while($file = readdir($handle))
{
if($file != '.' && $file != ".."){
$subdirectory = $dir.'/'.$file;
if(is_dir($subdirectory)) {
$this->delDirFile($subdirectory,true);
} else {
unlink($subdirectory);
}
}
}
closedir($handle);
if($status){
rmdir($dir);
}
}
其實原理也很簡單的,就是,打開文件句柄(opendir()),然後得到目錄中下一個文件的名稱(readdir()),判斷是否是文件夾(is_dir()),如果是就遞歸,不是就代表是文件,是文件就刪除,關閉文件句柄,由於php中刪除文件夾(rmdir()),要求該文件夾必須是空的,而且還要有相應的權限,所以要把刪除文件夾操作放到最後,判斷$status,然後執行。