龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

详谈PHP文件目录基础操作(4)

时间:2014-11-16 11:01来源:网络整理 作者:网络 点击:
分享到:
复制代码 代码如下: php // 目录的新建和删除 $newDirPath = 'F:/newDir'; if(true == @mkdir($newDirPath, 0777, true)){ // 加@是因为文件已存在时php本身可能会抛出一个warni

复制代码 代码如下:

<?php
    // 目录的新建和删除
    $newDirPath = 'F:/newDir';
    if(true == @mkdir($newDirPath, 0777, true)){      // 加@是因为文件已存在时php本身可能会抛出一个warning
        echo 'create directory '.$newDirPath.' successfully<br>';
    }
    else{
        if(file_exists($newDirPath))
            echo 'directory '.$newDirPath.' has existed<br>';
         else
            echo 'create directory '.$newDirPath.' failed<br>';
    }
    if(true == @rmdir('F:/aaa'))         //只能删除非空目录,如果删除不存在的目录自动抛出warning
         echo 'remove successfully<br>';

那么问题来了,如果要删除一个非空目录咋办,又得自己写了,思想仍然是递归,因为php只提供了删除文件函数unlink,所以在删除一个目录时,先opendir,再进入,如果是文件直接删除,如果是目录,继续进入使用该方法处理,当然还可已返回一个bool变量表示删除是否成功,代码如下:

复制代码 代码如下:

<?php
    // 删除文件  unlink
    // 删除目录中的内容,然后删除该目录
    function clearDir($dirpath){
        if(file_exists($dirpath)){
             if(false != ($handle = opendir($dirpath))){
                 while(false != ($name = readdir($handle))){
                 if($name == '.' || $name == '..')
                     continue;
                 $filename = $dirpath.'/'.$name;
                 if(is_dir($filename))
                     clearDir($filename);
                 if(is_file($filename))
                     @unlink($filename);
                 }
                 closedir($handle);
                 rmdir($dirpath);
              }
              else{
                 return false;
             }
          }
          else{
              return false;
          }
          return true;
      }

精彩图集

赞助商链接