`

怎样在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从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板  使用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源码包2

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

    java源码包3

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

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

    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开源包2

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

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

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

    JAVA新特性--java反射、映射

    它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操作系统和文件系统中。 ...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    ejb 3、jpa规范都属于sun公司所制订的java ee规范,因此把基于ejb 3+jpa的应用称为经典java ee架构,目前这种架构在java开发领域也有极大的市场占有率。  本书介绍了java ee规范的三大主要规范jsf、ejb 3和jpa,...

    计算机程序设计java语言数字排序问题.docx

    再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT10.DAT文件。 1 jsValue() { int i,thou,hun,ten,data,j; for(i=0;i;...

    基于java SSM实现人才信息管理系统的设计与实现管理系统附数据库文件+文档说明

    在设计中,首先,运用HTML语言对网站的静态页面进行精细的加工并且在网站的美工方面取得了良好的效果。其次,对于Java编程、JSP的动态编程以及MySQL数据库进行努力学习和大量实践,并运用到了网站的建设中。 本论文...

    基于java即时通讯软件的设计与实现【LW文档+PPT+开题+任务书+数据库+讲解视频】

    在这个软件中可以与陌生用户或者你已加入用户列表中的用户进行信息的传递来完成基本的交流,系统在后续中是会继续进行功能的完善与拓展,来实现文件传输,语音传输等各种方式来加强用户的体验,为用户带来极大的便利...

    Java聊天室的设计与实现设计开题报告.doc

    在互联网上即时的和好友取得联系,已经成为当今" " "社会人们主流的联系方式。作为通讯的一种运用的聊天软件,它继承了通讯软件的" " "优点,它具有文字聊天、语音聊天、传送文件、拨打电话、远程协助、视频聊天、" ...

    最新JAVA编程题全集_50题及答案

    import java.util.ArrayList; import java.util.List; public class NumTest { public static void main(String[] args) { String s="ABCD";//原字符串 List<String> result = list(s, "");//列出字符的...

    计算机毕业设计 - 基于JAVA的网络通讯系统设计与实现(LW+系统),保证可靠运行,毕业LW范文可参考,免费资源下载

    在互联网上即时的和好友取得联系,已经成为当今社会人们主流的联系方式。同时,即时通信系统对现代企业也有着重大意义,它能实现快速人际交流、数据共享,从而提高效率和生产力。实时通信为诸多企业开拓了网络应用的...

Global site tag (gtag.js) - Google Analytics