[原创] Tips: 两种目录遍历的方法

news/2024/7/4 10:41:26


目录的遍历是个老问题,主要用在目录遍历类操作,比如删除、统计磁盘占用等等情况。目录就是一个典型的树形结构,递归是最简单的方法了。

function  ErgodicDirectory1( $dir ) {
    
$dp   =   opendir ( $dir );
    
while  ( $file   =   readdir ( $dp )) {    
        
if  ( $file != ' . '   &&   $file != ' .. ' ) {
            
$path   =   $dir   . " / " .   $file ;
            
if  ( is_dir ( $path )) {
                
echo   " 目录: "   . $path .   chr ( 10 );
                ErgodicDirectory1(
$path );
            } 
else  {
                
echo   " 文件: "   . $path .   chr ( 10 );
            }
        }        
    }
    
closedir ( $dp );
}    

 

利用一个栈来递归消除:

function  ErgodicDirectory2( $dir ) {
    
$stack   =   array ( $dir );
    
while  ( ! empty ( $stack )) {
        
$curr_dir   =   array_pop ( $stack );        
        
if  ( $dp   =   opendir ( $curr_dir )) {
            
while  (( $file   =   readdir ( $dp ))) {
                
if  ( $file != ' . '   &&   $file != ' .. ' ) {
                    
$curr_file   =   " $curr_dir/$file " ;
                    
if  ( is_dir ( $curr_file )) {    
                        
echo   " 目录: " .   $curr_file   .   chr ( 10 );                    
                        
$stack []  =   $curr_file ;
                    } 
else  {
                        
echo   " 文件: " .   $curr_file   .   chr ( 10 );
                    }
                }
            }
            
closedir ( $dp );
        }        
    }
}

 

 





http://www.niftyadmin.cn/n/3652601.html

相关文章

系统的安全以及强行破解密码的手法

文章目录账号安全基本措施系统账号清理密码安全控制命令历史限制终端自动注销SU命令切换用户用途及用法密码验证限制使用su命令的用户Linux中的PAM安全认证su命令的安全隐患PAM可插拔式认证模块PAM认证原理PAM认证的构成PAM安全认证流程使用sudo机制提升权限sudo命令的用途及用…

[转]FTP搜索引擎的设计与实现(优化版)

FTP搜索引擎的设计与实现(优化版)By falcon摘要:FTP是因特网最主要的服务之一,FTP搜索引擎为资源共享提供了极大的方便。本文分析和设计了一个基于WEB的FTP搜索引擎,在ASPACCESSVB环境下给出了编程实现,并体…

日志文件的管理

文章目录日志文件日志的功能日志文件的分类日志保存位置主要日志文件介绍常见的一些日志文件:由系统服务 rsyslog 统一管理Linux系统内核日志消息的优先级别(数字等级越小,优先级越高,消息越重要)日志记录的一般格式保…

[转]FTP搜索引擎的设计与实现

FTP搜索引擎的设计与实现张运凯 刘宏忠 郭宏刚摘要:FTP是因特网最主要的服务之一,FTP搜索引擎为人们使用FTP服务提供了很大的方便。本文分析和设计了一个基于WEB的FTP搜索引擎,并在PHPMysql环境下给出了编程实现方法。  关键词:…

国内几个使用Ruby开发的网站

Ruby (Ruby On Rails) 的开发速度就是快,甚至超过PHP的开发速度,下面几个网站都是国内几个使用Ruby构建的网站,值得一看。JavaEye http://www.javaeye.comiease我易 http://search.iease.com.cnEnglishQuad http://www…

DNS正向与反向解析

文章目录DNS系统的简介DNS的定义DNS系统的分布式数据结构域名结构:DNS域名解析方式DNS系统类型主域名服务器从域名服务器缓存域名服务器转发域名服务器BIND服务BIND服务器端程序配置正向解析查看需要修改的配置文件所在路径Linux中的命令配置修改主配置文件修改区域…

在网上看到使用PHP实现常见的数据结构和算法

偶然使用google的代码搜索里面发现一个使用php实现的基本的数据结构和算法,什么二叉树、二叉搜索树、AVL树、B树、链表和常见排序、搜索算法等等,而且全部是使用面向对象来实现的,确是是很强。源码地址:http://www.brpreiss.com/b…

[转]Memcached深度分析

//奶瓶同学滴文章,哼哼//来源:http://www.54np.com/docs/mc.htmlMemcached深度分析作者:奶瓶网站:http://www.54np.comMemcached是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统&…