如何判断目录下包含文件,不是空目录
本帖最后由 maniachhz 于 2012-11-17 11:40:04 编辑
我想判断目录/upload下是否包含文件(不是目录),但我在/upload下新建一个test目录(无文件), 程序执行结果还是"不为空",而不是"为空". 请问哪里出问题? 求指点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<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
------解决方案-------------------- 逻辑上你没理清除思路:
1
2
3
4
5
if
(
$f
!==
"."
&&
$f
!==
".."
&&
is_dir
(
$f
)){<br />
isEmptyDir(
$f
);<br />
}
Copier après la connexion
------解决方案-------------------- 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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……
1
2
3
4
<br />
if
(
$f
!==
"."
&&
$f
!==
".."
&&
is_dir
(
$subdir
)){<br />
isEmptyDir(
$subdir
);
}<br />
Copier après la connexion
------解决方案--------------------
引用:
斑竹的代码perfect
我修改了我上面写的函数.还是运行不对.不知道哪里出问题
PHP code?123456789101112131415161718192021/* * 遍历目录,如果为空返回false */function isEmptyDir( $path ){ $dh= opendir($path.'/'); $r = false; wh……
要有人承接递归调用的返回值!