Maison > développement back-end > tutoriel php > 怎么判断目录上包含文件,不是空目录

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

WBOY
Libérer: 2016-06-13 13:00:33
original
838 Les gens l'ont consulté

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

本帖最后由 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 "为空";
Copier après la connexion




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

------解决方案--------------------
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 />
Copier après la connexion

------解决方案--------------------
引用:
斑竹的代码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 />
Copier après la connexion

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

要有人承接递归调用的返回值!
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal