在php操作文件中,遇到了创建多级文件夹,其实一级别的创建文件夹很简单,就mkdir(路径)即可,但是遇到了多级文件夹,这就得写函数来创建多级文件夹.
这个函数对采集也提供了方便,比如:下载文件创建目录结构
下面的函数就是自动创建多级文件夹.运用到几个php函数,并在下面解释了
function creatdir($path){
if(!is_dir($path)){
if(creatdir(dirname($path))){
mkdir($path,0777);
return true;
}
}else{
return true;
}
}
creatdir("a/b/c/d");
函数说明
is_dir:判断给定文件名是否是一个目录,如果是返回ture,如果不是返回false
dirname:返回路径中的目录部分,本函数返回去掉文件名后的目录名.比如$path="a/b/c";那么dirname($path)="a/b"
mkdir:尝试新建一个由 pathname 指定的目录。mkdir(string pathname [,int mode]),默认的 mode 是 0777,意味着最大可能的访问权
解释一下自动创建文件夹:
creatdir("a/b/c/d")//调用创建函数
首先判断整个目录是不是文件夹(或者说是不是存在),如果存在,返回真,则返回,不执行,如果不存在.则继续
不存在,判断其去掉最后目录名的是否存在:creatdir(dirname($path)):调用自身创建函数判断,如果存在则继续,创建$path
如果不存在,则再次去掉最后目录名,继续判断....直到最后判断a,
到了文件所在文件夹,首先判断是否是文件夹,是:返回ture,返回上一级creatdir(dirname($path)),判断/成功,则创建$path,/a/.mkdir($path,0777);返回真,再次返回上一级creatdir(dirname($path)),判断/a/成功,则创建/a/b/ .....依次类推.创建,最后返回ture.
以上就是php自动创建文件夹
end