我有一个代码来检查目录是否为空,以便我能够执行操作,但是这个简单的代码会出错:
警告: 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!";
};
我不明白这里有什么问题。该文件将退出指定的目录。
答案 0 :(得分: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。
答案 1 :(得分:0)
您应该使用以下代码段作为您的功能的主体:
$aFiles = glob($sFolder);
return (sizeof($aFiles) < 1) true : false;
这会将文件夹的内容作为数组获取,当为空时 - 您的目录为空。
答案 2 :(得分:0)
试试这个:
function IsNotEmpty($dir) {
$dir = rtrim($dir, '/').'/';
return is_dir($dir) && count(glob($dir.'*.*') > 2);
}
答案 3 :(得分:0)
克里斯汀,试着删除尾随斜杠:
$dir ="/Site/images/countries/abc/a/"
变为
$dir ="/Site/images/countries/abc/a"