Heim > Backend-Entwicklung > PHP-Tutorial > 怎么判断目录上包含文件,不是空目录

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-13 13:00:33
Original
848 Leute haben es durchsucht

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

本帖最后由 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 "为空";
Nach dem Login kopieren




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

------解决方案--------------------
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 />
Nach dem Login kopieren

------解决方案--------------------
引用:
斑竹的代码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 />
Nach dem Login kopieren

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

要有人承接递归调用的返回值!
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage