在Stack Overflow上,对于如何检查目录是否为空的问题,有几个答案,但是哪种方法最快,哪种方法最有效?
答案1: https://stackoverflow.com/a/7497848/4437206
function dir_is_empty($dir) {
$handle = opendir($handle);
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
closedir($handle); // <= I added this
return FALSE;
}
}
closedir($handle); // <= I added this
return TRUE;
}
答案2: https://stackoverflow.com/a/18856880/4437206
$isDirEmpty = !(new \FilesystemIterator($dir))->valid();
答案3: https://stackoverflow.com/a/19243116/4437206
$dir = 'directory'; // dir path assign here
echo (count(glob("$dir/*")) === 0) ? 'Empty' : 'Not empty';
或有一种完全不同的方式,它比以上三种方式更快更有效?
至于答案1,请注意我添加了closedir($handle);
,但我不确定这是否有必要(?)。
编辑:最初我添加了closedir($dir);
而不是closedir($handle);
,但我更正了它,正如@duskwuff在他的answer中所说的那样。
https://stackoverflow.com/questions/50689708
复制相似问题