在php中刪除檔案與目錄其實很簡單只要兩個函數一個是unlink一個rmdir函數,如果要實現刪除目錄及目錄下的檔案我們需要利用遞迴來操作.本文主要和大家介紹了PHP unlink與rmdir刪除目錄及目錄下所有檔案的執行個體代碼,需要的朋友可以參考下,希望能協助到大家。
函數代碼:僅刪除指定目錄下的檔案,不刪除目錄檔案夾,代碼如下:
class shanchu { //迴圈目錄下的所有檔案 function delFileUnderDir( $dirName=”../Smarty/templates/templates_c” ) { if ( $handle = opendir( “$dirName” ) ) { while ( false !== ( $item = readdir( $handle ) ) ) { if ( $item != “.” && $item != “..” ) { if ( is_dir( “$dirName/$item” ) ) { delFileUnderDir( “$dirName/$item” ); } else {//開原始碼phpfensi.com if( unlink( “$dirName/$item” ) )echo “成功刪除檔案: $dirName/$item<br />n”; } } } closedir( $handle ); } } }
假設需要刪除一個名叫”upload”目錄下的所有檔案,但無需刪除目錄檔案夾,你可以通過以下程式碼完成:
<?php delFileUnderDir( ‘upload');?>
php刪除所有目錄,代碼如下:
function deltree($pathdir) { echo $pathdir;//調試時用的 if(is_empty_dir($pathdir))//如果是空的 { rmdir($pathdir);//直接刪除 } else {//否則讀這個目錄,除了.和..外 $d=dir($pathdir); while($a=$d->read()) { if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a);} //如果是檔案就直接刪除 if(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..')) {//如果是目錄 if(!is_empty_dir($pathdir.'/'.$a))//是否為空白 {//如果不是,調用自身,不過是原來的路徑+他下級的目錄名 deltree($pathdir.'/'.$a); } if(is_empty_dir($pathdir.'/'.$a)) {//如果是空就直接刪除 rmdir($pathdir.'/'.$a); } } } $d->close(); echo "必須先刪除目錄下的所有檔案";//我調試時用的 } } function is_empty_dir($pathdir) { //判斷目錄是否為空白 $d=opendir($pathdir); $i=0; while($a=readdir($d)) { $i++; } closedir($d); if($i>2){return false;} else return true; }
PHP刪除目錄及目錄下所有檔案,代碼如下:
<?php //迴圈刪除目錄和檔案函數 function delDirAndFile( $dirName ) { if ( $handle = opendir( “$dirName” ) ) { while ( false !== ( $item = readdir( $handle ) ) ) { if ( $item != “.” && $item != “..” ) { if ( is_dir( “$dirName/$item” ) ) { delDirAndFile( “$dirName/$item” ); } else { if( unlink( “$dirName/$item” ) )echo “成功刪除檔案: $dirName/$item<br />n”; } } } closedir( $handle ); if( rmdir( $dirName ) )echo “成功刪除目錄: $dirName<br />n”; } } //假設需要刪除一個名叫”upload”的同級目錄即此目錄下的所有檔案,你可以通過以下程式碼完成: delDirAndFile( ‘upload'); ?>