<?php
function delete_directory($dir) {
if ( ($dh = opendir($dir)) == true ) {

// Iterate through directory contents
$file = readdir($dh);
while ($file !== false ) {
if ( ($file == '.')  ||  ($file == '..') )
continue;

if (is_dir($dir . '/' . $file))
delete_directory($dir . '/' . $file);
else
unlink($dir . '/' . $file);
}

closedir($dh);

rmdir($dir);
}
}

$dir = "E:/afda/";
delete_directory($dir);
?>我的E:/afda/中有一个文件夹set和一个文本文件byy.txt,为什么总是删除不了呢?

解决方案 »

  1.   

    给你一个例子,自己参考下:
    php Rmdir删除文件目录代码
    class  del_path
    {
    function  wm_chief_delpath($del_path)
    {
    if(!file_exists($del_path))//目标目录不存在则建立
    {echo"Directory not found.";return  false;}
    $hand=@opendir($del_path);
    $i=0;
    while($file=@readdir($hand))
    {$i++;
    if ($file!="."&&$file!="..")
     {
       //目录
    if(is_dir($del_path."/".$file))
    {
    $del_s_path=$del_path."/".$file;
    $this->wm_chief_delpath($del_s_path);
    }
    else
    {
    $del_file=$del_path."/".$file;
    $this->wm_chief_file($del_file);
    }
     }
    }
    @closedir($hand);
    $this->wm_chief_path($del_path);
    return  true;
    }
    //删除文件
    function  wm_chief_file($del_file)
    {
    @unlink($del_file);
    }
    //删除目录
    function  wm_chief_path($del_path)
    {
    @rmdir($del_path);
    }
    }
      

  2.   

    http://php.net/manual/en/function.rmdir.php给予参看
      

  3.   

    $file = readdir($dh);
    while ($file !== false ) {
    死循环了
    应为
    while (($file = readdir($dh)) !== false ) {
      

  4.   

    E:/afda/";加一层封装, 去一下末尾的/吧,你这里很明显路径变成了E:/afda//xxx了。