请教这个命令是什么? 是强制删除目录     目录变量为$dir
试了下 system('del '.$dir); 发现没有删掉任何东西 说明这个命令不行 不过测试这个命令可以删文件 目录删不掉换成system('rd '.$dir); 也不行
system('rm '.$dir"); 还不行
system('rmdir '.$dir"); 更不行没辙了 绝望了 来求教给位大牛给我一条win环境下php调用系统命令强制删除目录文件夹的语句或命令  跪谢 祝好人一生平安!

解决方案 »

  1.   

    DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
    ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names  names         指定一个或数个文件或目录列表。通配符可被用来
                    删除多个文件。如果指定了一个目录,目录中的所
                    有文件都会被删除。  /P            删除每一个文件之前提示确认。
      /F            强制删除只读文件。
      /S            从所有子目录删除指定文件。
      /Q            安静模式。删除全局通配符时,不要求确认。
      /A            根据属性选择要删除的文件。
      attributes      R  只读文件                     S  系统文件
                      H  隐藏文件                     A  存档文件
                      -  表示“否”的前缀如果命令扩展名被启用,DEL 和 ERASE 会如下改变:/S 开关的显示句法会颠倒,即只显示已经
    删除的文件,而不显示找不到的文件。记得window下的 system 只能执行外部命令,你自己试一下
    你可能需要这样 command del ...
    也可能需要把 del ... 写到cmd文件中,间接的执行总之我不在web方式下执行服务器中的系统命令,太危险了
      

  2.   

    cmd del...但这样做会有权限问题另外就是windows unicode文件名在php5无解,php6目前为止好像还没完全攻破这道难题
    如果有这样的需求,只能用文件列表方式删除
      

  3.   

    1、递规法:利用递归一层一层的删。
    deleteDir($dir) 

    if (rmdir($dir)==false && is_dir($dir)) { 
     if ($dp = opendir($dir)) { 
      while (($file=readdir($dp)) != false) { 
       if (is_dir($file) && $file!='.' && $file!='..') { 
        deleteDir($file); 
       } else { 
        unlink($file); 
       } 
      } 
      closedir($dp); 
     } else { 
      exit('Not permission'); 
     } 
    }  

          2、系统调用法 function del_dir($dir) 

    if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') { 
        $str = "rmdir /s/q " . $dir; 
    } else { 
        $str = "rm -Rf " . $dir; 


          3、循环法 function deltree($pathdir)  
    {  
    echo $pathdir;//调试时用的  
    if(is_empty_dir($pathdir))//如果是空的  
       {  
       rmdir($pathdir);//直接删除  
       }  
       else  
       {//否则读这个目录,除了.和..外  
           $d=dir($pathdir);  
           while($a=$d->read())  
           {  
           if(is_file($pathdir.'/'.$a) && ($a!='.') && ($a!='..')){unlink($pathdir.'/'.$a);}  
     
           //如果是文件就直接删除  
           if(is_dir($pathdir.'/'.$a) && ($a!='.') && ($a!='..'))  
           {//如果是目录  
               if(!is_empty_dir($pathdir.'/'.$a))//是否为空  
               {//如果不是,调用自身,不过是原来的路径+他下级的目录名  
               deltree($pathdir.'/'.$a);  
               }  
               if(is_empty_dir($pathdir.'/'.$a))  
               {//如果是空就直接删除  
               rmdir($pathdir.'/'.$a);  
     
               }  
           }  
           }  
           $d->close();  
       echo "必须先删除目录下的所有文件";//我调试时用的  
       }  
    }  
    function is_empty_dir($pathdir)  

    //判断目录是否为空 
    $d=opendir($pathdir);  
    $i=0;  
       while($a=readdir($d))  
       {  
       $i++;  
       }  
    closedir($d);  
    if($i>2){return false;}  
    else return true;  
    }  
      

  4.   

    递归删除就用SPL的递归器吧,才几行代码,不用那么头疼
      

  5.   

    scandir 列出指定路径中的文件和目录 http://www.php.net/manual/zh/function.scandir.php
    file_exists 判断文件是否存在。 http://it.php.net/manual/zh/function.file-exists.php
    unlink 删除文件 http://www.php.net/manual/zh/function.unlink.php
    rmdir 删除目录 http://www.php.net/manual/zh/function.rmdir.php function deleteDirectory($dir) {
      if (!file_exists($dir)) return true;
      if (!is_dir($dir)) return unlink($dir);
      foreach (scandir($dir) as $item) {
      if ($item == '.' || $item == '..') continue;
      if (!deleteDirectory($dir.DIRECTORY_SEPARATOR.$item)) return false;
      }
      return rmdir($dir);
      }
      $files = glob(dirname(__FILE__)."/../files/*");// 全局files文件夹下的所有文件
        foreach($files as $file) {
            deleteDirectory($file); //循环分析删除
        }
      

  6.   

    官方网站里其他人给的函数<?php
    # recursively remove a directory
    function rrmdir($dir) {
        foreach(glob($dir . '/*') as $file) {
            if(is_dir($file))
                rrmdir($file);
            else
                unlink($file);
        }
        rmdir($dir);
    }
    ?>