检查文件夹是否为空输出错误(PHP)

检查文件夹是否为空输出错误(PHP),php,dir,opendir,Php,Dir,Opendir,我有一个代码来检查目录是否为空,这样我就可以执行操作,但是这个简单的代码给出了一个错误: 警告:opendir(/Site/images/countries/abc/a/2.swf,/Site/images/countries/abc/a/2.swf)[function.opendir]:系统找不到指定的路径。(代码:3)在C:\wamp\www\Site\index.PHP的第374行 没有这样的文件 我不明白这里怎么了。文件在指定目录中退出。opendir用于打开目录,而不是文件:-) 您还

我有一个代码来检查目录是否为空,这样我就可以执行操作,但是这个简单的代码给出了一个错误:

警告:opendir(/Site/images/countries/abc/a/2.swf,/Site/images/countries/abc/a/2.swf)[function.opendir]:系统找不到指定的路径。(代码:3)在C:\wamp\www\Site\index.PHP的第374行

没有这样的文件


我不明白这里怎么了。文件在指定目录中退出。

opendir
用于打开目录,而不是文件:-)

您还可以尝试暂时放入调试内容,以便查看发生了什么:

function IsNotEmpty ($folder) {
    $files = array ();
    if ($handle = opendir ($folder))  {
        echo "DEBUG opened okay ";
        while (false !== ($file = readdir ($handle))) {
            if ( $file != "." && $file != ".." ) {
                $files [] = $file;
                echo "DEBUG got a file ";
            }
        }
        closedir ($handle); 
    } else {
        echo "DEBUG cannot open ";
    }
    return (count($files) > 0 ) ? TRUE : FALSE;
}

$dir ="/Site/images/countries/abc/a";
if (IsNotEmpty($dir)) { 
    echo "There is no such file";
} else {
    echo "The file exists!";
}

如果这仍然不起作用,并且您确定目录存在(请记住,大小写对UNIX很重要),您可能希望查看该目录上的权限,以确保允许尝试访问该目录的用户ID。

您可以使用以下代码段作为函数的正文:

$aFiles = glob($sFolder);
return (sizeof($aFiles) < 1) true : false;
$aFiles=glob($sFolder);
返回值(sizeof($aFiles)<1)true:false;
当目录为空时,这将以数组形式获取文件夹的内容。

请尝试以下示例:

function IsNotEmpty($dir) {
      $dir = rtrim($dir, '/').'/';
      return is_dir($dir) && count(glob($dir.'*.*') > 2);
}

Christine,尝试删除尾部斜杠:

$dir ="/Site/images/countries/abc/a/"
变成

$dir ="/Site/images/countries/abc/a"

什么意思?我尝试使用
$dir=“/Site/images/countries/abc/a/”
但这是相同的错误。@Christine,如果是这样,那么您还需要检查权限。@Christine,那么您需要(1)检查目录是否确实存在;以及(2)检查用户是否具有搜索(执行)权限。也许快速检查的方法是设置
$dir=“/tmp”暂时,因为几乎每个人都应该在那里拥有搜索权限。
$dir ="/Site/images/countries/abc/a"