php刪除文件夾

最近要做一個清空緩存的功能,就琢磨了下

寫了一個簡單的刪除文件夾的方法,由於並沒有太多對文件的操作,也就沒封裝成類,有需要的可以拿去,或者完善下,代碼如下:

/**
     * @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,然後執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章