0

除 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;
            }
        }
    }
}

我有 3 个功能可以让它工作:

  1. isEmpty: 验证文件夹是否为空
  2. emptyIt: 空文件夹和子文件夹
  3. removeIt: 删除文件夹

有什么提示吗?

4

3 回答 3

0

试试这将从 php.netnot中删除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);
}
}
于 2013-11-20T20:50:34.690 回答
0

试试这将删除folder和它的content( subfolders)

system('/bin/rm -rf ' . escapeshellarg($dir));

$dir的路径在哪里folder

于 2013-11-20T20:37:00.570 回答
0

也许您使用无权更改文件夹的用户执行程序,尝试使用 root 执行它或授予当前用户权限,祝您好运。

于 2013-11-20T20:44:42.453 回答