2010-10-20 90 views
2

我似乎无法得到此功能来删除特定目录中的所有文件和文件夹有人可以帮我解决这个问题吗?如何使用PHP删除文件夹的内容?

这是我的代码。

$apps = 9; 
$dirname = './members/' . $apps . '/'; 
function delete_directory($dirname) { 
    if (is_dir($dirname)) 
     $dir_handle = opendir($dirname); 
    if (!$dir_handle) 
     return false; 
    while($file = readdir($dir_handle)) { 
     if ($file != "." && $file != "..") { 
     if (!is_dir($dirname."/".$file)) 
      unlink($dirname."/".$file); 
     else 
      delete_directory($dirname.'/'.$file);  
     } 
    } 
    closedir($dir_handle); 
    rmdir($dirname); 
    return true; 
} 
+1

当您尝试运行它时会发生什么?你遇到什么错误?用户的PHP脚本是否具有删除文件的权限? – ceejayoz 2010-10-20 13:35:57

+0

是的,我有权限,但没有任何反应,没有错误没有什么。 – HELP 2010-10-20 13:36:51

+0

你的功能看起来不错..你确定你正在**调用**吧? – codaddict 2010-10-20 13:40:45

回答

2

你的函数看起来不错。

我猜你是不是调用它正确。一种称呼它的方式是:

$apps = 9; 
$dirname = './members/' . $apps . '/'; 
delete_directory($dirname); 

function delete_directory($dirname) { 
..... 
0

初始目录是否应该有斜线?

$dirname = './members/' . $apps; 
+0

这很好。你可以在路径中有任意数量的连续的'/'。例如:''foo/bar“'与'”foo /////// bar“'相同 – codaddict 2010-10-20 13:46:43

1
function EmptyDir($dir) 
{ 
    $handle=opendir($dir); 
    while (($file = readdir($handle))!==false) { 
     unlink($dir.'/'.$file); 
    } 
    closedir($handle); 
} 

EmptyDir('yourdir'); 
相关问题