mkdir()能否建立多层目录?

fxs_2008 2009-01-31 12:35:17
有人说可以同时建立多层目录
比如 /a/b/c都不存在,可以一次创 建
我测试不行,有成功过的吗?
...全文
1896 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
webad20 2009-02-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 surfchen 的回复:]
mkdir('a/b/c',0666,true);
[/Quote]终于有个洞的了 yb
Crossmaya 2009-02-06
  • 打赏
  • 举报
回复
mkdir(吃/喝/玩/乐,true)
我记得可以这样用了???
fxs_2008 2009-02-05
  • 打赏
  • 举报
回复
递归吧
function createFolder($path){
if (!file_exists($path)){
createFolder(dirname($path));
mkdir($path, 0711);
}
}

这个网上写的,还不错
TR@SOE 2009-02-05
  • 打赏
  • 举报
回复
我也测试成功了。不过不知道这个函数的定义在哪里,不然可以认真看看它是怎么实现的。
fxs_2008 2009-02-05
  • 打赏
  • 举报
回复
谢谢各位老兄了,手册不太详

另外,英文差了点,recursive中文是递归的意思,当时没认清,马虎过了
害得自已写递归函数!

见过别人说可以的,看来手册还得好好看!
Zijian_Zhang 2009-02-05
  • 打赏
  • 举报
回复
那个参数只支持PHP5.0.0以上版本的,不支持PHP4。
Zijian_Zhang 2009-02-05
  • 打赏
  • 举报
回复
呵呵,学习了,我都不知道有这个参数哦,原来那么简单的。

回12楼的,我在WINDOWS测试过了,PHP版本5.2.8测试通过。
surfchen 2009-02-05
  • 打赏
  • 举报
回复
天阿。居然几乎没人知道mkdir有$recursive这个参数,我来到了火星吗?
程序猿之殇 2009-02-05
  • 打赏
  • 举报
回复
function _mkdir($dir)
{
$arrDir = explode('/', $dir);
$curDir = ".";
if(is_array($arrDir))
{
foreach($arrDir as $key=>$value)
{
$curDir = $curDir . "/" .$value;
if(is_dir($curDir))
{
continue;
}
else
{
mkdir($curDir);
}
}
}
return;
}


linux下用 system("mkdir -p /a/b/c");吧,这个更实用一些.
jim8590251 2009-02-05
  • 打赏
  • 举报
回复
反正我以前也试过,多个目录好象不行
TR@SOE 2009-02-05
  • 打赏
  • 举报
回复
Linux下命令行中是可以通过mkdir -p /a/b/c来一次创建所有目录(如果不存在的话)的,所以我猜也可以。

然后我去看PHP的手册,查到mkdir的说明:

bool mkdir ( string $pathname [, int $mode=0777 [, bool $recursive=false [, resource $context ]]] )

这个recursive声明引起了我的注意,继续看详细的说明,但是没有很明确的提示。

不过LZ不妨一试。不过在Windows下可能不行。
yctin 2009-02-05
  • 打赏
  • 举报
回复
楼主都 猩猩 了...
怎么都不去看手册~全部都有写啊 XD

http://cn.php.net/mkdir
surfchen 2009-02-05
  • 打赏
  • 举报
回复
mkdir('a/b/c',0666,true);
mof_sf 2009-02-05
  • 打赏
  • 举报
回复
同意五楼的观点
mof_sf 2009-02-05
  • 打赏
  • 举报
回复
同意五楼的观点;
mof_sf 2009-02-05
  • 打赏
  • 举报
回复
同意五楼的观点;
pkneteasy 2009-02-05
  • 打赏
  • 举报
回复
我晕,什么都想要现成 的,自己不能写函数吗?一层一层的建立不就可以了。我受不了了,我要换地方!
乐游 之 神话 2009-02-05
  • 打赏
  • 举报
回复

$path1="F:/wenjian/wenjian/wenjian";
function createFolder($path) //自定义的创建文件夹的函数
{
if (!file_exists($path)) //如果文件夹不存在
{
createFolder(dirname($path)); //递归创建 //取得最后一个文件夹的全路径返回开始的地方
mkdir($path, 0777);//创建并写文件
}
}
createFolder($path1);

这样就建立了多层目录很方便啊
hzcenter 2009-02-05
  • 打赏
  • 举报
回复
since PHP 5, setting the recursive flag (which currently has no notes in the manual entry) will allow you to create nested directories in the same way as Windows / Linux mkdir -p, so long as the webserver has permissions to write in the root directory of the path specified
eg:

<?php
mkdir ("./newdir1/newdir2/newdir3/", 0755, true);

// Returns TRUE if you have permission to write to the current directory
// and creates nested directories with permissionsrwxr-xr-x
?>

是可以的,不过版本要新的
海诗美妆 2009-02-05
  • 打赏
  • 举报
回复
建立多层目录的例子:

目录树:
[code=BatchFile]0 ------ 0
1 1
2 2 -------- 0
3 3 1
4 ... 2
5 3
6 ...
7
[....]
e
f[/code]

代码:

for ($a=0;$a<=15;$a++) {

mkdir(dechex($a),0755);

for ($b=0;$b<=15;$b++) {

mkdir(dechex($a).'/'.dechex($b),0755);

for ($c=0;$c<=15;$c++) {

mkdir(dechex($a).'/'.dechex($b).'/'.dechex($c),0755);

}

}

}
加载更多回复(6)

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧