除removeIt函数(空白页)外,所有函数都能工作。下面是我的代码:
class Dir {
public function emptyIt($path) {
if ($handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if(is_file($path."/".$file)) {
unlink($path."/".$file);
} else {
if($handle2 = opendir($path."/".$file)) {
while (false !== ($file2 = readdir($handle2))) {
if ($file2 != "." && $file2 != "..") {
unlink($path."/".$file."/".$file2);
}
}
}
rmdir($path."/".$file);
}
}
}
}
return true;
}
function isEmpty($path) {
$handle=opendir($path);
$i=0;
while (false !== ($file = readdir($handle))) {
$i++;
}
closedir($handle);
if($i>=2) {
return false;
} else {
return true;
}
}
public function removeIt($path) {
if (emptyIt($path)) {
if (rmdir($path)) {
return true;
} else {
return false;
}
}
}
}
我有三个功能使它工作:
isEmpty
:验证文件夹是否为空emptyIt
:空文件夹和子文件夹removeIt
:删除文件夹
有什么提示吗?
尝试此操作将删除folder
及其content
(subfolders
)
system('/bin/rm -rf ' . escapeshellarg($dir));
其中$dir
是folder
的路径
也许你用一个没有权限对文件夹进行更改的用户执行程序,试着用root用户执行程序或将权限授予当前用户,祝你好运。
尝试此操作将not
从php.net 中删除empty
direcotires
function rrmdir($dir) {
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $object) {
if ($object != "." && $object != "..") {
if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
}
}
reset($objects);
rmdir($dir);
}
}