请问我的目录无法创建
报错:Warning: mkdir() [function.mkdir]: No such file or directory in D:\wamp\www\mail_bak.php on line 82帖子连接:http://topic.csdn.net/u/20110901/15/fb31bf03-d85c-44ee-a540-4301a1edf80c.html我想搞清楚他的逻辑是什么样子的,首先我连接ftp,然后以递归的方式读取ftp(远程主机的ftp)根目录下的文件,然后在我本机创建目录,下载保存到本机目录。
如果我的逻辑没有错的话,我有个问题:
1.程序使用ftp登录后,下载的文件存于哪里,请帮忙看下帖子连接里面的代码,我用的是wamp的集成环境,默认的目录是www文件夹下,那么我的程序也会在www文件夹下面创建目录并将远程下载的文件保存到其中么?研究了两天了,这点逻辑有点没有搞清。上面的报错不明白...

解决方案 »

  1.   

    也许是没有权限吧!注意看mail_bak.php的82行。是否有这样写:mkdir(目录名字符,777);类似这样的结构。
      

  2.   

    mkdir()这个函数默认是无法创建多级目录的,所以你要指定第三个参数,让其递归创建多级目录即可:
    如:
    mkdir('aa/bb/cc/dd',0777,true)
      

  3.   

    这样举例说吧,
    mkdir('aa/bb/cc/dd',0777);  //这行代码运行时肯定会报arning: mkdir() [function.mkdir]: No such file or directory in...  错误而我们给mkdir加上第三个参数,mkdir('aa/bb/cc/dd',0777,true) ;运行之后,它就会递归创建目录。当然你自己也可以不指定第三个参数,自己动手写递归也行,可是那样会麻烦点。
      

  4.   


    function recursive_mkdir( $folder )
    {
    $folder = explode( DIRECTORY_SEPARATOR , $folder );
    $mkfolder = '';
    for(  $i=0 ; isset( $folder[$i] ) ; $i++ )
       {
       $mkfolder .= $folder[$i];
       if( !is_dir( $mkfolder ) )
       mkdir( "$mkfolder" ,  0777,true);
       $mkfolder .= DIRECTORY_SEPARATOR;
       }
    } 这是源码,我查看了手册explode那个函数不明白什么意思
    循环中好像是在做递归,但是我不明白$folder的变量如何取到。另外 DIRECTORY_SEPARATOR这个我没有查到是什么意思