PHP首先扫描目录文件夹然后保留文件

时间:2014-12-12 02:04:05

标签: php

我正在寻找一个可以扫描目录并返回一个包含文件夹结果然后剩余文件的数组的函数,提前谢谢。



function listFolderFiles($dir){
    $ffs = scanDir($dir);
    foreach($ffs as $ff){
        if($ff != '.' && $ff != '..'){
            if(is_dir($dir.'/'.$ff)){
				listFolderFiles($dir.'/'.$ff);
			}
			else
			{
				echo  $ff . "<br>";
			}
        }
    }
}
listFolderFiles('..');
&#13;
&#13;
&#13;

此代码将递归扫描文件夹,但我需要在文件之前返回文件夹。

2 个答案:

答案 0 :(得分:1)

您可以使用scandirDirecotryIterator并检查每个元素(如果它是文件或目录),但您要查找的功能不存在。你怎么知道数组中的值是否是目录文件?你无论如何都要检查它。

答案 1 :(得分:1)

这个肯定有用

function file_sort ($a,$b)
{
    return ($cmp = is_dir($b) - is_dir($a)) ? $cmp : strcmp($a, $b);
}

function directories_first ($path)
{
    $files = array ();
    $dh  = opendir($path);
    while (false !== ($filename = readdir($dh)))
    {
        if($filename=='.' || $filename=='..')
            continue;
        $files[] = rtrim($path, '/').'/'.ltrim($filename, '/');
    }

    usort($files,'file_sort');

    return $files;
}