0

ディレクトリが空かどうかを確認するコードがあるので、アクションを実行できますが、この単純なコードではエラーが発生します。

警告: opendir(/Site/images/countries/abc/a/2.swf,/Site/images/countries/abc/a/2.swf)[function.opendir]:システムは指定されたパスを見つけることができません。(コード:3)374行目のC:\ wamp \ www \ Site \index.PHP

そのようなファイルはありません

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!";
     };

ここで何が悪いのかわかりません。ファイルは指定されたディレクトリに存在します。

4

4 に答える 4

1

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 が許可されていることを確認してください。

于 2011-06-20T13:01:00.273 に答える
0

関数の本体として次のスニペットを使用する必要があります。

$aFiles = glob($sFolder);
return (sizeof($aFiles) < 1) true : false;

これにより、フォルダの内容が配列として取得されます。空の場合、ディレクトリは空です。

于 2011-06-20T13:05:27.667 に答える
0

たとえば、これを試してください:

function IsNotEmpty($dir) {
      $dir = rtrim($dir, '/').'/';
      return is_dir($dir) && count(glob($dir.'*.*') > 2);
}
于 2011-06-20T13:06:52.430 に答える
0

クリスティン、末尾のスラッシュを削除してみてください。

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

になる

$dir ="/Site/images/countries/abc/a"
于 2011-06-20T13:07:03.987 に答える