一、刪除空文件夾
要?jiǎng)h除一個(gè)空的文件夾,我們可以使用php內(nèi)置的rmdir()函數(shù),它可以直接刪除一個(gè)空文件夾。在thinkphp中,我們只需要使用rmdir()函數(shù)的路徑參數(shù),便可以刪除指定的文件夾。例如:
$path?=?'./test';?//要?jiǎng)h除的文件夾路徑 if(is_dir($path)){ ????rmdir($path); }
上面的示例中,首先我們定義了要?jiǎng)h除的文件夾路徑,然后使用is_dir()函數(shù)判斷此路徑是否為一個(gè)目錄,如果是目錄就執(zhí)行rmdir()函數(shù)來刪除它。需要注意的是,這種方法只能刪除空文件夾,如果文件夾中還存在文件或子文件夾,則無法刪除。
二、刪除非空文件夾
立即學(xué)習(xí)“PHP免費(fèi)學(xué)習(xí)筆記(深入)”;
如果要?jiǎng)h除非空文件夾,我們可以使用delDir()函數(shù)來實(shí)現(xiàn),下面是一個(gè)簡(jiǎn)單的實(shí)現(xiàn):
function?delDir($path){ ????if(is_dir($path)){ ????????if?($dh?=?opendir($path)){ ????????????while?(($file?=?readdir($dh))?!==?false){ ????????????????if?($file?!=?'.'?&&?$file?!=?'..'){ ????????????????????$fullpath?=?$path.'/'.$file; ????????????????????if(!is_dir($fullpath)){ ????????????????????????unlink($fullpath); ????????????????????}else{ ????????????????????????delDir($fullpath); ????????????????????} ????????????????} ????????????} ????????????closedir($dh); ????????????rmdir($path); ????????} ????} }
delDir()函數(shù)的作用是刪除目錄,它通過遞歸調(diào)用自身,先刪除目錄中的所有文件,然后再刪除這個(gè)目錄。具體實(shí)現(xiàn)方法是首先使用opendir()函數(shù)打開指定目錄,然后使用readdir()函數(shù)讀取目錄中所有文件和文件夾,判斷它們是否為.和..,如果不是則以同樣的方式進(jìn)行處理。
如果是文件,直接使用unlink()函數(shù)刪除;如果是文件夾,則遞歸調(diào)用delDir()函數(shù)刪除這個(gè)文件夾及其內(nèi)容。最后再使用rmdir()函數(shù)刪除這個(gè)空目錄。