`

怎样在Java里取得满足条件的文件列表

阅读更多

File.listFiles()或File.list()方法可以取得指定目录下的所有文件和目录列表。本文举例说明取得指定条件的文件列表的方法。

Java通过File.listFiles/list方法来列出目录下的文件列表。下面介绍File.listFiles方法的用法。File.list的用法也基本一样。

File.listFiles方法有三种形式,
public File [] listFiles()
无参数的listFiles将返回所有文件,包括子文件与子目录。
public File [] listFiles(java.io.FilenameFilter)
java.io.FilenameFilter:文件名过滤器接口。过滤器必须实现此接口。该接口定义了一个
public boolean accept(File file, String filename)方法,第一个参数File file为正在被过滤的文件,第二个参数为正在被过滤的文件名。FilenameFilter.accept返回false的文件会被过滤掉。
该方法返回匹配FilenameFilter所指定条件的文件
public File [] listFiles(java.io.FileFilter)
public boolean accept(File file)方法,第一个参数File file为正在被过滤的文件。FileFilter.accept返回false的文件会被过滤掉。
该方法返回匹配FileFilter所指定条件的文件。

下面我们通过举例说明后2个方法的用法。

取得指定扩展名的文件列表:
    public static FilenameFilter getFileExtensionFilter(String extension) {
        final String _extension = extension;
        return new FilenameFilter() {
            public boolean accept(File file, String name) {
                boolean ret = name.endsWith(_extension); 
                return ret;
            }
        };
    }

    File file = new File("c:\\");
    File[] zipFiles = file.listFiles(getFileExtensionFilter(".zip"));


取得文件名满足所指定的规则表达式的文件列表
    public static FilenameFilter getFileRegexFilter(String regex) {
        final String regex_ = regex;
        return new FilenameFilter() {
            public boolean accept(File file, String name) {
                boolean ret = name.matches(regex_); 
                return ret;
            }
        };
    }

    File file = new File("c:\\");
    //取得文件名为8个数字,扩展名为.html的文件
    File[] numberHtmlFiles = file.listFiles(getFileRegexFilter("[0-9]{8}\\.html"));


取得非目录的文件列表:

    public static FileFilter getNotDirFileFilter() {   

        return new FileFilter() {   

            public boolean accept(File file) {   

                return file.isFile();   

            }   

        };   

    }   

  

    File file = new File("c:\\");   

分享到:
评论
1 楼 aiyjau 2012-07-30  
public static FilenameFilter getFileExtensionFilter(String extension) {
        final String _extension = extension;
        return new FilenameFilter() {
            public boolean accept(File file, String name) {
                boolean ret = name.endsWith(_extension);
                return ret;
            }
        };
能说下这个是什么意思吗

相关推荐

    java源码包---java 源码 大量 实例

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言编写的一...

    java源码包3

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言...

    java源码包2

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    JAVA上百实例源码以及开源项目源代码

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    java源码包4

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用Java语言...

    基于Java的DICOM文件格式转换与信息提取.pdf

    基于Java的DICOM文件格式转换与信息提取 DICOM(Digital Imaging and ...基于Java的DICOM文件格式转换与信息提取技术可以满足医疗行业对DICOM文件处理和转换的需求,并且可以提高医疗信息的交换和共享效率。

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    java竞赛题集锦

    10. **方法重载与覆盖**:在Java中,方法的重载(overloading)指的是在同一类中定义多个同名方法,但它们的参数列表不同。而方法覆盖(overriding)发生在子类中重新定义父类的方法,通常是为了提供不同的实现或...

    JAVA版五子棋(含源文件和JAR运行程序)

    五子棋是一种双人对弈策略游戏,目标是通过在棋盘上先连成五子直线(横、竖或斜线)来取得胜利。 此项目包含了完整的源代码,这对于学习Java编程,尤其是图形用户界面(GUI)设计和事件处理的开发者来说,是一份...

    java二级考试操作题

    - 循环结构的使用在`Java_2`类中通过`do...while`循环体现,这是一种先执行循环体内的代码,然后检查条件是否满足的循环结构。循环体内的代码用于计算阶乘,使用了`Math.round`方法进行四舍五入计算。 4. 字体与...

    JAVA上百实例源码以及开源项目源代码 java开源包2

    FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上...

    Java编写的非常有用的方法,文字中提取中文字符

    为了方便你直接使用这些功能,你可以将以上代码保存到名为`Java取得字符串中汉字字符串.java`和`判断是否为空白字符串.java`的两个Java文件中。在你的项目中导入并使用这些类,它们将帮助你有效地处理字符串中的汉字...

    Think in Enterprise JAVA

    Bruce Eckel的《Think in Enterprise JAVA》无疑会深入探讨这些主题,并提供实际案例和最佳实践,帮助开发者在企业级Java开发中取得成功。通过阅读这些内容,读者不仅可以提升技术能力,还能培养出“企业级思维”,...

    清华JAVA基础教程

    Java语言是20世纪90年代由美国Sun Microsystems公司推出的,它在互联网时代取得了巨大的成功。Java的出现解决了传统编程语言在不同操作系统和硬件平台之间移植困难的问题,实现了“一次编写,到处运行”的跨平台特性...

    java学习实例(都是一些比较基础的实例)

    根据提供的文件信息,我们可以归纳出一系列与Java编程相关的知识点,主要集中在基本的程序结构、流程控制、变量作用域以及操作符等几个方面。下面将详细展开这些知识点。 ### Java程序结构 #### Hello.java 该程序...

    Java中的反射机制

    反射机制的核心在于使系统更加开放,即反射系统不仅具备开放性,还需满足“原因连接”的条件。“原因连接”意味着对反射系统自描述的改变能够立即反映到系统底层的实际状态和行为上,反之亦然。 #### 二、Java中的...

    java仿qq聊天器

    总结来说,【Java仿QQ聊天器】是一个集成了多种功能的通信工具,它巧妙地运用了TCP/IP和UDP协议来满足不同通信需求,同时在界面设计和用户体验上做出了精心的优化。无论是从技术实现还是用户交互角度,这款聊天器都...

    java的参考文献

    根据给定文件的信息,我们可以提炼出以下详细的IT知识点: ### Java自动化的单元测试工具JUTA #### 背景介绍 在高质量软件系统的开发过程中,测试是非常重要且耗时的环节。为了提高测试效率与质量,研究者们提出了...

Global site tag (gtag.js) - Google Analytics