php中mkdir建立多級目錄
| 代碼如下 |
複製代碼 |
function mkdirs($dir) { if(!is_dir($dir)) { if(!mkdirs(dirname($dir))) { return false; } if(!mkdir($dir,0777)) { return false; } } return true; }
|
調用方法
mkdirs('div/css/layout');
建立多級目錄更標準的方法
| 代碼如下 |
複製代碼 |
//檢查並建立多級目錄 function checkDir($path){ $pathArray = explode('/',$path); $nowPath = ''; array_pop($pathArray); foreach ($pathArray as $key=>$value){ if ( ''==$value ){ unset($pathArray[$key]); }else{ if ( $key == 0 ) $nowPath .= $value; else $nowPath .= '/'.$value; if ( !is_dir($nowPath) ){ if ( !mkdir($nowPath, 0777) ) return false; } } } return true; } |
刪除多級目錄方法
在winxp下測試成功,只要php檔案編碼為gb2312,檔案名稱隨意,應該把檔案名稱改為編碼為gb2312,就行,沒測
| 代碼如下 |
複製代碼 |
<?php header("Content-Type:text/html; charset=gb2312"); if(deleteDir('./複件 複件 複件 複件 複件 複件 複件 複件 複件 複件 複件 aaa')) echo "刪除成功"; function deleteDir($dir) { if (@rmdir($dir)==false && is_dir($dir)) //刪除不了,進入刪除所有檔案 { if ($dp = opendir($dir)) { while (($file=readdir($dp)) != false) { if($file!='.' && $file!='..') { //echo $file=$dir.'/'.$file;echo '<br/>'; $file=$dir.'/'.$file; if (is_dir($file)) //是真實目錄 { deleteDir($file); }else { unlink($file); } } } closedir($dp); }else { return false; } } if (is_dir($dir) && @rmdir($dir)==false) //是目錄刪除不了 return false; return true; } ?> |
遞迴刪除多級目錄
同樣的思路,php用rmdir和unlink遞迴刪除多級目錄的代碼:
| 代碼如下 |
複製代碼 |
function rmdirs($dir) { $d = dir($dir); while (false !== ($child = $d->read())){ if($child != '.' && $child != '..') { if(is_dir($dir.'/'.$child)) rmdirs($dir.'/'.$child); else unlink($dir.'/'.$child); } } $d->close(); //調用方法也很簡單只要給目錄就好 rmdir($dir); } |