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



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

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

没有这样的文件

function IsNotEmpty($folder){
$files = array ();
if ( $handle = opendir ( $folder ) ) 
{
  while ( false !== ( $file = readdir ( $handle ) ) )
   {
      if ( $file != "." && $file != ".." ) 
         {
            $files [] = $file;
         }
   }
    closedir ( $handle ); 
 }
 return ( count ( $files ) > 0 ) ? TRUE: FALSE; }

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

我不明白这里出了什么问题。文件在指定的目录中退出。

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;

当目录为空时,这将以数组的形式获取文件夹的内容。

例如:

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"

相关内容

  • 没有找到相关文章

最新更新