在php中用遞歸的方式創建多級目錄(解決多級目錄無法直接創建的問題)

通常在php中創建一個新目錄所使用的函數是mkdir();(mkdir()說明請點擊:mkdir()

但是這個函數存在的一個問題就是沒有辦法直接創建多級目錄,也就是說如果你需要創建一個多級目錄的時候,最直接但是最麻煩的方法就是一級一級的去創建目錄。比如,要創建a/b/c,就需要先創建a,在創建a/b,再創建a/b/c。

但是很明顯,這個方法是很麻煩的,所以我們可以採用遞歸的方式來創建,具體代碼如下(該代碼實現在該php文件所在的路徑下創建多級目錄a/b/c):

其中,還是用到一個php函數時dirname(),用於返回當前目錄的上一級目錄(具體說明請點擊:dirname()

<?php
function mk_ndir($dir)  
{  
if(!is_dir($dir))//檢測當前集的目錄是否存在,如果存在,返回true  
{//若當前目錄不存在  
if(!mk_ndir(dirname($dir))){//首先遞歸建立當前目錄的上級目錄  
return false;  
}  
if(!mkdir($dir,0777)){//之後建立當前目錄  
return false;  
}  
}  
return true;  
}  
mk_ndir('a/b/c');//調用函數創建多級目錄  
?>

同樣,可以用rmdir() 和 dir->read()  遞歸解決刪除多級目錄的問題。

發佈了38 篇原創文章 · 獲贊 1 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章