除了removeIt one(空白页)之外,所有功能都有效。这是我的代码:
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;
}
}
}
}
我有3个功能可以使它工作:
isEmpty
:验证文件夹是否为空emptyIt
:空文件夹和子文件夹removeIt
:删除文件夹任何提示?
答案 0 :(得分:0)
尝试此操作会移除folder
及其content
(subfolders
)
system('/bin/rm -rf ' . escapeshellarg($dir));
其中$dir
是folder
答案 1 :(得分:0)
也许您使用没有权限对文件夹进行更改的用户执行程序,尝试使用root执行该程序或授予当前用户权限,祝您好运。
答案 2 :(得分:0)
尝试此操作not
删除empty
direcotires
from php.net
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);
}
}