Home > Backend Development > PHP Tutorial > 怎么判断目录上包含文件,不是空目录

怎么判断目录上包含文件,不是空目录

WBOY
Release: 2016-06-13 13:00:33
Original
838 people have browsed it

如何判断目录下包含文件,不是空目录

本帖最后由 maniachhz 于 2012-11-17 11:40:04 编辑 我想判断目录/upload下是否包含文件(不是目录),但我在/upload下新建一个test目录(无文件), 程序执行结果还是"不为空",而不是"为空". 请问哪里出问题? 求指点
<br />
/*<br />
 * 遍历目录,如果为空返回false<br />
 */<br />
function isEmptyDir( $path )<br />
{<br />
	$dh= opendir($path);<br />
	$r = false;<br />
	while(false!==($f=readdir($dh)))<br />
	{<br />
		if ($f !=="." && $f !==".." && is_dir($f)){<br />
			isEmptyDir($f);<br />
		}<br />
		else if ($f!=="." && $f !== "..")<br />
			return $r = true;<br />
	}<br />
	closedir($dh);<br />
	return $r;<br />
}<br />
<br />
if (isEmptyDir($upload_dir."/")){<br />
	echo "不为空";<br />
}<br />
else echo "为空";
Copy after login




------解决方案--------------------
逻辑上你没理清除思路:
if ($f !=="." && $f !==".." && is_dir($f)){<br />
     // 假设进入这一分支,想想看会产生什么影响? 这句代码不会影响到最后的结果。<br />
     isEmptyDir($f);<br />
     // return isEmptyDir($f);<br />
}
Copy after login

------解决方案--------------------
function isEmptyDir( $path )<br />
{<br />
    $dh= opendir($path.'/');<br />
    $r = false;<br />
    while(false!==($f=readdir($dh)))<br />
    {<br />
        if ($f =="." <br><font color='#FF8000'>------解决方案--------------------</font><br> $f =="..") continue;<br />
        $f = "$path/$f";<br />
        if(is_dir($f)){<br />
            $r = isEmptyDir($f);<br />
        }<br />
        else $r = true;<br />
    }<br />
    closedir($dh);<br />
    return $r;<br />
}<br />
Copy after login

------解决方案--------------------
引用:
斑竹的代码perfect
我修改了我上面写的函数.还是运行不对.不知道哪里出问题
PHP code?123456789101112131415161718192021/* * 遍历目录,如果为空返回false */function isEmptyDir( $path ){ $dh= opendir($path.'/'); $r = false; wh……

<br />
 if ($f !=="." && $f !==".." && is_dir($subdir)){<br />
            isEmptyDir($subdir);//改成$r = isEmptyDir($subdir);<br />
        }<br />
Copy after login

------解决方案--------------------
引用:
斑竹的代码perfect
我修改了我上面写的函数.还是运行不对.不知道哪里出问题
PHP code?123456789101112131415161718192021/* * 遍历目录,如果为空返回false */function isEmptyDir( $path ){    $dh= opendir($path.'/');    $r = false;    wh……

要有人承接递归调用的返回值!
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template