800M

16 object(s)
 

递归扫描目录下所有文件

在文件管理中,如何列出某个目录的文件?如何查看目录下所有的压缩包?如何统计该目录下所有文件的大小?我们可以利用opendir打开进行扫描,具体代码如下:

function scan($dir){
    echo "$dir<hr>\n";
    if(is_dir($dir)){
        if($dh = opendir($dir)){
            while(($file = readdir($dh)) !== false){
                if($file == '.' || $file == '..') continue;
                $newfile = "$dir/$file";
                if(is_dir($newfile)) scan($newfile);
                else echo "$newfile<hr>\n";
            }
            closedir($dh);
        }
    }
}
scan(".");

1、readdir()函数返回目录中下一个文件的文件名,当前目录和上一层目录需要忽略跳过。

2、里面的参数,指定之前由opendir()打开的目录句柄资源。如果该参数未指定,则使用最后一个由opendir()打开的链接。