`
nnnnon
  • 浏览: 150244 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

很棒的目录递归处理

    博客分类:
  • RORs
阅读更多
原来一直是通过自己实现递归调用来处理目录,今天在《RubyProgramming》一书中看到,在ruby中居然是有专门的库“find.rb”来实现这个功能的,非常强大。

一个例子代码:

require "find"


IGNORES = [/^\./] #以.开头的目录不进行处理

def listdir(top)
   Find.find(top){ |path|
      if FileTest.directory?(path)
          dir,base = File.split(path)
          IGNORES.each{ |re|
	     if re =~ base
	       Find.prune    #和next相比是整个目录都不处理,而next则对子目录还是进行处理
	      end
	  }
	  puts "目录:"<<path
       else
          puts "文件:"<<path
	  puts "文件名:" <<File.basename(path)
	  if File.basename(path).downcase! =~/\.jpg$/ #判断后缀名是否是jpg
	     puts "文件是图片"
	   end
       end

   }
end

listdir(ARGV[0])

分享到:
评论
1 楼 nnnnon 2010-11-03  
jpg图片的判断也可以这样进行:

if File.extname(path).downcase! == ".jpg"

相关推荐

    C语言目录递归经典代码Recurse-Directories-in-C

    // 递归处理子目录 } ``` 4. **处理文件**:如果条目是文件,你可以根据需要进行操作,例如打印文件名、复制文件等。 5. **关闭目录**:最后,使用`closedir()`函数关闭打开的目录流: ```c closedir(dir); ...

    递归删除文件或子目录

    - 对每个条目,调用`DeleteRecursively`函数进行递归处理。 4. **错误处理**: - 在整个过程中,要处理可能出现的各种错误,如文件不存在、权限不足、无法删除等,确保程序具有良好的容错性。 5. **安全考虑**:...

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

    3. **递归处理子目录**:如果找到的是一个子目录(`WIN32_FIND_DATA`结构的`dwFileAttributes`成员包含`FILE_ATTRIBUTE_DIRECTORY`标志),我们需要对这个子目录递归执行相同的步骤。 4. **收集文件信息**:在遍历...

    易语言递归实现目录枚举所有子目录

    本文将深入探讨如何使用易语言实现递归目录枚举,以便遍历指定目录及其所有子目录中的文件。 目录枚举是程序设计中常见的需求,例如在文件管理、备份、搜索等方面都有应用。在易语言中,我们可以使用“文件”和...

    linux 目录树实现代码递归

    在处理目录树时,我们可以把根目录视为初始调用,然后对每个子目录进行相同的操作,这就是递归的思想。 下面是一个简单的`tree.c`程序示例,它会打印出当前目录及其所有子目录下的文件和子目录: ```c #include #...

    C递归遍历目录.txt

    - 调用 `searchFile` 进行递归处理。 - 使用 `_chdir` 返回上一级目录。 6. **普通文件处理**: ```c for (i = 0; i (file.name); i++) { file.name[i] = tolower(file.name[i]); } for (i = 0; i (file.name...

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

    在C#编程中,递归是一种强大的工具,常用于解决涉及层次结构或树形结构的问题,比如在文件系统中查找特定目录或文件。本话题主要关注如何使用递归方法遍历指定文件夹及其所有子目录。我们将探讨以下几个关键知识点:...

    C# 递归遍历多层目录并将目录信息写入XML

    在C#编程中,有时我们需要获取文件系统的详细信息,例如遍历多层目录,并将这些信息存储起来,以便后续处理或记录。在这种情况下,我们可以利用递归算法来遍历目录结构,然后使用XML来保存数据,因为XML是一种结构化...

    递归遍历目录并生成树

    如果遇到子目录,我们需要调用自身来递归处理。递归是一种函数自我调用的技术,能够处理具有层级关系的数据结构,比如文件系统的目录树。 `GetModuleFileName`是Windows API中的一个函数,用于获取指定模块的完整...

    C#遍历指定目录(包括子目录)的递归

    这个过程通常通过递归算法实现,因为目录结构可以是多层次的,递归能够有效地处理这种树形结构。下面我们将深入探讨C#中遍历目录的递归方法以及相关知识点。 1. **System.IO命名空间**:在C#中,`System.IO`命名...

    使用递归生成文件目录树

    ### 使用递归生成文件目录树 #### 概述 在计算机科学中,文件系统的组织结构通常采用树形结构表示,其中根目录为树的根节点,而子目录和文件则作为分支节点。为了清晰地展示文件系统中的层级关系,本篇文章将介绍...

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

    总结来说,C# FTP递归下载文件功能的实现涉及理解FTP协议、解析目录列表、递归调用以及处理网络I/O。通过这种方式,你可以轻松地从FTP服务器下载包含多个层次结构的文件和子目录,这对于处理大型文件存储系统非常...

    c# 基于文件目录的递归查询显示 !

    // 对每个子目录递归调用自身 ListFilesAndDirectories(dir, listView, comboBox); } } ``` 在这个例子中,我们使用`Directory.GetFiles()`获取当前目录下的所有文件,`Directory.GetDirectories()`获取所有子...

    递归显示数据库目录树+BBS

    - 可能还会有从数据库获取目录树的逻辑,这可能涉及到SQL查询和结果集的处理。 通过以上分析,我们可以看到递归在数据库目录树展示中的重要性,以及如何结合BBS系统提供用户友好的文件浏览体验。`ArticleTree.java`...

    一个递归删除指定目录和文件的例子

    在编程领域,递归是一种强大的工具,特别是在处理文件系统操作如删除目录及其包含的所有文件时。这个例子将探讨如何使用递归实现这个功能,主要关注C++编程语言,因为提供的文件列表暗示这是一个C++项目。 首先,让...

    非递归删除非空目录(源代码)

    本文将详细讲解这两个API函数以及如何在非递归方式下删除非空目录。 `DeleteFile`函数用于删除指定的文件。它的原型如下: ```cpp BOOL DeleteFile( _In_ LPCTSTR lpFileName ); ``` 参数`lpFileName`是一个指向...

    使用递归算法打印目录下所有的文件

    如果是一个子目录,函数会递归调用自身处理这个子目录,从而实现对整个目录结构的遍历。 递归算法的优点在于其简洁性和通用性,但也要注意其潜在的风险。过度的递归可能导致栈溢出,因为每次函数调用都会占用一定的...

    .net TreeView 动态绑定数据库 无限级树目录 递归调用

    本主题将深入探讨如何在.NET中利用TreeView控件动态地从数据库中加载并显示无限级别的目录结构,同时使用递归调用来实现这一功能。 首先,我们要理解动态绑定的概念。动态绑定是指在运行时根据需要从数据源加载数据...

    ASP.net 递归读出网站上所有目录文件(源)

    // 获取当前目录下的所有子目录,并递归处理 foreach (var subDir in Directory.GetDirectories(directoryPath)) { Console.WriteLine($"子目录: {subDir}"); ReadAllFiles(subDir); // 递归调用 } } catch ...

    递归处理当前目录下所有txt文件的实用程序

    该工具适用于从一个目录下大量的txt文件中搜索并提取出来包含某些关键词的信息,有递归查找的功能哦,实用性很强,编码也很规范,可供java入门者参考和研究,也可供有这方面需要的上班族直接使用。

Global site tag (gtag.js) - Google Analytics