`
txf2004
  • 浏览: 7041640 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

子目录寻找文件的简单方法 - DirectoryRecursiveIterator(目录递归迭代) - SPL - 马永占 译

阅读更多

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan

原文地址:http://blog.makemepulse.com/2008/02/18/tips-easy-way-to-find-a-file-in-subdirectory-with-php/

在一个非常多目录结构的情况下寻找一个文件,如下 :


我们要include进来file_to_find.php,这个文件需要递归的来寻找 :
include(dirname(__FILE__)."/class.directorysearch.php");

directory = dirname(__FILE__)."/directory";

$search_directory = new DirectorySearch($directory);
path_file = $search_directory->find("file_to_find.php");

if($path_file !== false){
include_once($path_file);
}
看一下class.directorysearch.php :
class DirectorySearch {

private
$iterator,
$directoryname;
public function __construct($directoryname){
$this->iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directoryname,RecursiveDirectoryIterator::KEY_AS_FILENAME));
}

public function find($filename){
foreach($this->iterator as $entry){
if($filename == $this->iterator->current()){
return $this->iterator->getPathName();
}
}
return false;
}
如果我们不在recursiveDirectoryIterator 中使用KEY_AS_FILENAME,我们将在$this->iterator->current()搜索整个目录;
这是一个关于RecursiveIteratorIterator使用RecursiveDirectoryIterator简单的例子
SPL 是非常强大的工具.!!!

Tips : Easy way to find a file in subdirectory with php - Antoine Ughetto
原文地址:http://blog.makemepulse.com/2008/02/18/tips-easy-way-to-find-a-file-in-subdirectory-with-php/
mayongzhan 译
2008-02-18 23:40:14
[查看中文翻译]
I’ve made a previus post on SPL using RecursiveIterator to parse Array. Today we will use this same RecursiveIterator with a DirectoryRecursiveIterator.
We have a directory with a lot of subdirectory like this and we want to find this file :

(more…)

分享到:
评论

相关推荐

    0/1背包问题的两种解法--存储优化的递归和自下而上的递归(迭代法)

    - `knapsackProblemBottomUpDP.cpp`:这个文件实现了自下而上的递归(迭代法),从基本情况开始逐步计算`dp`数组。 - `knapsackProblemBottomUpDP2.cpp`:可能是一个稍有不同的自下而上迭代版本,可能是为了演示不同...

    n后问题--非递归迭代回溯.rar

    n后问题--非递归迭代回溯.rar n后问题--非递归迭代回溯.rar n后问题--非递归迭代回溯.rar n后问题--非递归迭代回溯.rar n后问题--非递归迭代回溯.rar n后问题--非递归迭代回溯.rar

    C# FTP递归下载文件(子目录和子目录中的文件)

    在本文中,我们将深入探讨如何使用C#编程语言实现FTP(File Transfer Protocol)递归下载功能,以便能够从服务器获取整个目录结构,包括子目录及其内的所有文件。这个任务适用于那些需要从FTP服务器批量下载数据的...

    递归与迭代算法及其在JAVA语言中的应用.pdf

    递归与迭代是算法设计中两种常见的解决问题的方法,它们在Java语言中的应用广泛且具有深远的意义。递归算法通过方法内部调用自身来解决问题,它适合于可以分解为相似子问题的问题;而迭代算法则通过循环结构,不断...

    文件递归-XML递归-树图递归

    在计算机科学中,文件系统递归是指通过遍历文件系统(通常是从根目录开始)来处理目录及其子目录下的所有文件的过程。这种方法常用于搜索特定类型的文件、统计文件数量或者进行文件系统的备份操作。 **实现细节:**...

    递归-----动态树实现递归

    在处理大型或深度较大的树时,可能需要考虑使用迭代或其他非递归方法。 总的来说,递归是理解和操作动态树的重要工具,它提供了一种简洁、清晰的解决问题的方式。无论是遍历、搜索、构造还是修改树结构,递归都能...

    C# 用递归的方式查找指定文件夹下的所有子目录

    通过以上讨论,我们了解到如何使用C#的递归方法查找文件夹下的所有子目录,并了解了相关的关键知识点,包括递归概念、文件操作、WinForm应用的构建以及项目配置。在实际开发中,可以根据具体需求进行调整和优化。

    Python语言程序设计教程 北理工Python课程第6章-函数与递归-4-程序结构和递归 共20页.pdf

    【大纲】0-1-课程内容和安排介绍1-1-计算机的概念1...函数与递归-1-函数定义第6章-函数与递归-2-函数的调用和返回值第6章-函数与递归-3-改变参数值的函数第6章-函数与递归-4-程序结构和递归第6章-函数与递归-5-函数实例

    DSAinC++3-遍历迭代与递归1

    在计算机科学中,遍历、迭代和递归是三种常见的解决问题的方法,特别是在数据处理和算法设计中。遍历是访问集合所有元素的过程,通常按照一定的顺序,确保每个元素仅被访问一次。这种操作在处理数组、链表、树和图等...

    文件检索器 递归迭代搜索

    这种结合了递归和迭代的方法使得搜索过程既全面又高效,能够处理复杂的文件系统结构。 FileSearch.rc 文件可能是资源脚本,包含了应用程序的界面元素,如菜单、对话框和图标等资源定义。Main.ico 可能是应用程序的...

    linux下为目录和文件设置权限,包括子目录的循环递归设置

    ### Linux 下为目录和文件设置权限,包括子目录的循环递归设置 #### 知识点一:Linux 文件权限概述 在 Linux 操作系统中,文件权限管理是至关重要的安全特性之一。通过权限管理,我们可以控制不同用户对文件或目录...

    oracle递归、迭代

    递归查询是Oracle数据库中处理层次结构数据的一种非常强大且灵活的方法。通过合理地定义`START WITH`和`CONNECT BY PRIOR`子句,可以方便地检索出任何复杂的层级结构数据。此外,结合`ORDER SIBLINGS BY`子句,还...

    递归删除文件或子目录

    在这个场景中,"递归删除文件或子目录"指的是编写一个程序,它能够遍历并删除指定目录下的所有文件和子目录,包括它们的子孙目录,但会跳过那些被标记为只读属性的文件和目录。这个功能在清理或整理文件系统时非常...

    matlab开发-目录和文件递归筛选名称日期或字节

    本文将详细讨论如何使用MATLAB进行目录和文件的递归筛选,主要关注文件的名称、日期和字节大小。 首先,`dirr.m` 文件很可能是实现递归筛选功能的MATLAB脚本或函数。在MATLAB中,`dir` 函数用于获取指定目录中的...

    01-E-2 减而治之 & 01-E-3 递归跟踪 递归方程1

    在计算机科学中,"减而治之"(Decrease-and-Conquer)是一种常见的算法策略,它将一个大问题分解为小问题,...然而,递归跟踪并不适用于所有情况,特别是当递归结构变得复杂时,需要寻找其他方法来分析算法的复杂度。

    递归目录下文件生成SHA-1加密码,生成Excel文件

    在遍历目录时,递归意味着程序会从顶级目录开始,逐个处理子目录中的所有文件,直到遍历完所有层次的文件。 接着,我们来看SHA-1的计算过程。SHA-1算法接收一个二进制数据块,通过一系列数学运算(包括位操作、异或...

    递归和迭代1

    根据给定文件的信息,我们可以深入探讨递归与迭代这两个重要的编程概念。递归与迭代都是解决计算机科学领域问题的重要方法,它们在算法设计、数据结构处理等方面有着广泛的应用。 ### 一、递归 #### 1.1 什么是...

    商业编程-源码-用递归的方法画分形图.zip

    递归函数可能会接受当前坐标、迭代次数等参数,并根据某种规则(比如Sierpinski三角形、Koch雪花或分形树)调整这些参数,然后调用自身来处理子区域。每一步递归都会使图形的细节更加丰富,直到达到所需的精度或者...

    VC6 递归得到目录下文件列表

    2. **迭代**:如果`FindFirstFile`成功,我们可以使用`FindNextFile`函数继续查找目录中的下一个文件或子目录,直到没有更多的文件。 3. **递归处理子目录**:如果找到的是一个子目录(`WIN32_FIND_DATA`结构的`...

Global site tag (gtag.js) - Google Analytics