欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-06-02 16:58:32
...
如何判断目录下包含文件,不是空目录
本帖最后由 maniachhz 于 2012-11-17 11:40:04 编辑 我想判断目录/upload下是否包含文件(不是目录),但我在/upload下新建一个test目录(无文件), 程序执行结果还是"不为空",而不是"为空". 请问哪里出问题? 求指点

/*
* 遍历目录,如果为空返回false
*/
function isEmptyDir( $path )
{
$dh= opendir($path);
$r = false;
while(false!==($f=readdir($dh)))
{
if ($f !=="." && $f !==".." && is_dir($f)){
isEmptyDir($f);
}
else if ($f!=="." && $f !== "..")
return $r = true;
}
closedir($dh);
return $r;
}

if (isEmptyDir($upload_dir."/")){
echo "不为空";
}
else echo "为空";




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

------解决方案--------------------
function isEmptyDir( $path )
{
$dh= opendir($path.'/');
$r = false;
while(false!==($f=readdir($dh)))
{
if ($f =="."
------解决方案--------------------
$f =="..") continue;
$f = "$path/$f";
if(is_dir($f)){
$r = isEmptyDir($f);
}
else $r = true;
}
closedir($dh);
return $r;
}

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


if ($f !=="." && $f !==".." && is_dir($subdir)){
isEmptyDir($subdir);//改成$r = isEmptyDir($subdir);
}

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

要有人承接递归调用的返回值!
怎么判断目录上包含文件,不是空目录

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • 怎么判断目录上包含文件,不是空目录
  • 专题推荐