日期:2014-05-17 浏览次数:20589 次
function delDir($dir) {
//先删除目录下的文件:
$dh=opendir($dir);
while ($file=readdir($dh)) {
if($file!="." && $file!="..") {
$fullpath=$dir."/".$file;
if(!is_dir($fullpath)) {
unlink($fullpath);
} else {
delDir($fullpath);
}
}
}
closedir($dh);
//删除当前文件夹:
if(rmdir($dir)) {
return true;
} else {
return false;
}
}
//删除当前文件夹:
/* if(rmdir($dir)) {
return true;
} else {
return false;
}
*/
------解决方案--------------------
function delDir($dir) {
//先删除目录下的文件:
$dh=opendir($dir);
while ($file=readdir($dh)) {
if($file!="." && $file!="..") {
$fullpath=$dir."/".$file;
if(!is_dir($fullpath)) {
unlink($fullpath);
} else {
delDir($fullpath);
}
}
}
closedir($dh);
}
------解决方案--------------------
function delDir($dir) {
$t = array();
$dh = opendir($dir);
while ($file=readdir($dh)) {
if($file!="." && $file!="..") {
$fullpath=$dir."/".$file;
if(!is_dir($fullpath)) {
unlink($fullpath);
} else {
delDir($fullpath);
$t[] = $fullpath;//由于目录被占用,不能删除。保存起来
}
}
}
closedir($dh);
if($t) array_map('rmdir', $t);//删除所有的子目录
}
------解决方案--------------------
或者在删除目录的时候 判断 是不是upload 是的话不删除
------解决方案--------------------
在你原函数中
} else {
delDir($fullpath);//这里并没有承接delDir的返回值
}
返回是没有意义的。所以我没有书写返回
如需要返回要这样做
function delDir($dir) {
$t = array();
$r = true;
$dh = opendir($dir);
while ($file=readdir($dh)) {
if($file!="." && $file!="..") {
$fullpath=$dir."/".$file;
if(!is_dir($fullpath)) {
unlink($fullpath);
} else {
$r &= delDir($fullpath);
$t[] = $fullpath;//由于目录被占用,不能删除。保存起来
}
}
}
closedir($dh);
if($t) foreach($t as $f) $r &= rmdir($f);//删除所有的子目录
return $r;
}