关于mkdir()的一个奇怪的问题。

在我的public function addAction()中包含如下一段程序。

$dir_patient="D:\\tumor\\".$this->view->patientID;//为了创建新的数据文件夹

$dir_study="D:\\tumor\\".$this->view->patientID."\\".$this->view->studyID;//为了创建新的数据文件夹

$dir="D:\\tumor\\".$this->view->patientID."\\".$this->view->studyID."\\mrs".$this->view->mrsID;

if (!is_dir($dir_patient))
     mkdir($dir_patient,0700);//如果不经过这一步,下面的一段程序if程序就不能执行,原因不明。
    if (!is_dir($dir_study))
    mkdir($dir_study,0700);//如果不经过这一步,下面的一段程序if程序就不能执行,原因不明。
    if (!$dir_exist)  
    { while (!is_dir($dir))
      {   
    mkdir($dir,0700);
      }
    }

程序可以云心成功,且能正确的建立的相关的文件夹(D盘中的tumor文件夹已经事先建好)。


但是,如果把

if (!is_dir($dir_patient))
       mkdir($dir_patient,0700);//如果不经过这一步,下面的一段程序if程序就不能执行,原因不明。
     if (!is_dir($dir_study))
      mkdir($dir_study,0700);//如果不经过这一步,下面的一段程序if程序就不能执行,原因不明。
     if (!$dir_exist)   
     { while (!is_dir($dir))
        {   
     mkdir($dir,0700);
        }
     }

改为:

if (!$dir_exist)   
     { while (!is_dir($dir))
        {   
     mkdir($dir,0700);
        }
     }

从逻辑上看,这两端程序所实现的效果是一样的,但是,问题是,第二段程序不能运行成功,且服务器会运行好久好久后,给出一张空的网页。


总结问题,我猜想:只能一步一步的 mkdir($dir_patient,0700);


为了验证猜想,我写了如下一段程序:

public function createfileAction()
    {
         $dir="D:\\nn\\mm\\zz";
         if (!is_dir($dir))
    mkdir($dir,0700);
    if (!is_dir($dir))
    mkdir($dir,0700);
    if (!is_dir($dir)) 
    mkdir($dir,0700);    
    }

运行结果却是三个警告:

Warning: mkdir() [function.mkdir]: No such file or directory in D:\php\wamp\www\mvcnew\application\modules\mrs\controllers\IndexController.php on line 607

Warning
: mkdir() [function.mkdir]: No such file or directory in D:\php\wamp\www\mvcnew\application\modules\mrs\controllers\IndexController.php on line 609

Warning
: mkdir() [function.mkdir]: No such file or directory in D:\php\wamp\www\mvcnew\application\modules\mrs\controllers\IndexController.php on line 611


哪位大牛帮忙指点一下,这是为什么?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章