function
mkdirs
($dir)
if(!mkdir($dir,0777))
}chmod($dir, 777); //給目錄操作許可權
return
true;
}
開始時我認為,只要給乙個路徑,mkdir就可以建立資料夾,但是事實並不是那樣,單個的mkdir只能建立一級目錄,對於多級的就不行了。
1. 使用php5新增方法
php5 下建立目錄函式 mkdir 增加了乙個新的引數 recursive ,通過設定 recursive 為 true 可以實現遞迴建立目錄的目的,但是對php4就不行了。
2.自己寫乙個遞迴建立多級目錄。
這裡,我對第二種方式作一點說明,也有兩種方式,如下:
第一種(用mkdirs來產生多級父級)
function
mkdirs
($dir, $mode = 0777)
說明:
1.首先 簡單說一下mkdir()與mkdirs()的區別,以及,is_dir和dirname():
mkdir() 只能在已經存在的目錄中建立建立資料夾(即父級必須有才行)。
mkdirs() 可以在不存在的目錄中建立資料夾。諸如:a\b,既可以建立多級目錄。
dirname()是返回路徑中的目錄部分。
is_dir()用於判斷給出的檔名是否是乙個有效的目錄
2.大致流程為:
(1) 先用is_dir判斷是否已是乙個資料夾,如果是則返回true。如沒有(或者不是資料夾),則試著建立它,當然有可以父級不存在,那mkdir直接就創不成功,但也為不報錯,所以就用@來抑止報非致命錯誤。
(2)如果傳引數都不滿足條件,那麼就進入第二個if語句,先是取得路徑中的目錄部分,當然有可能是不存在的多級父級,所以用了mkdirs()來先建立父級,如果成功(不成功返回false),那麼再用mkdir來建立最終的目錄了。
function
create_folders
($dir)
說明:
大致流程: 得到路徑後,先判斷是否已是乙個有效的檔案目錄,如是則返回,結束程式。如果不是,(由於這裡用了or作先擇性的條件,即只要滿足其中乙個條件就行),則遞迴再呼叫自身,並且傳入的路徑中,少一級目錄。這樣來先回到上級有的父級目錄中,再用mkdir來建立下一級的。
好了,以上就是用php來建立資料夾(以及多級資料夾)的方法。^_^
總結:
1.用php5中自帶的mkdir 中的乙個新的引數 recursive ,通過設定 recursive 為 true 可以實現遞迴建立目錄的目的,但是對php4就不行了。
2.自己寫的方法中,用mkdirs來建立多級父級目錄方式
3.仍然可以用mkdir很巧妙的來建立多級資料夾。
PHP實現建立資料夾
獲取提交的比賽名,用於建立資料夾 name get name iconv方法是為了防止中文亂碼,保證可以建立識別中文目錄,不用iconv方法格式的話,將無法建立中文目錄 dir iconv utf 8 gbk name dir article dir mkdir方法的第乙個引數是要建立的目錄路徑,第...
PHP實現建立資料夾
獲取提交的比賽名,用於建立資料夾 name get name iconv方法是為了防止中文亂碼,保證可以建立識別中文目錄,不用iconv方法格式的話,將無法建立中文目錄 dir iconv utf 8 gbk name dir article dir mkdir方法的第乙個引數是要建立的目錄路徑,第...
建立資料夾
當某資料夾不存在時,建立資料夾 import os path dir file if not os.path.exists path dir os.makedirs path dir 同時建立資料夾有兩種函式,os.mkdir和os.makedirs,兩者的區別在於前者是一級一級建立檔案目錄,後者可...