首页 理论教育 文件和目录的过滤

文件和目录的过滤

时间:2023-02-28 理论教育 版权反馈
【摘要】:方法list返回File实例所指目录中所有满足FilenameFilter过滤条件的文件和子目录的名字;而方法listFiles返回所有满足FilenameFilter过滤条件的文件和子目录的File实例。对每一个子目录或文件,调用accept方法,将表示根目录的File对象,以及每个子目录或文件名分别传递给参数dir,name。=-1)判断当前File对象是否为文件,并且文件后缀是否为.java。若同时成立,判断结果为true,否则为false。

12.1.3 文件和目录的过滤

方法list(FilenameFilter)返回File实例所指目录中所有满足FilenameFilter过滤条件的文件和子目录的名字;而方法listFiles(FilenameFilter)返回所有满足FilenameFilter过滤条件的文件和子目录的File实例。FilenameFilter是接口,它仅包含accept(File dir,String name)抽象方法。因此,如果使用这两个方法,首先要定义实现该接口的类。

这两个方法处理的流程是:对于当前File对象表示的根目录,取出该根目录下的所有子目录和文件。对每一个子目录或文件,调用accept(File dir,String name)方法,将表示根目录的File对象,以及每个子目录或文件名分别传递给参数dir,name。只有当accept()方法返回true时,才会把这个子目录或文件加入到返回清单中。

【例12-3】 在G:\myDir目录下,查找并打印文件后缀为.java的文件。

img685

运行结果(作者机器上g:\myDir目录下的查询结果):

img686

分析与思考:①从运行结果可以看出:G:\\myDir目录下有3个文件,其中有2个文件是带有.java后缀的文件。

②使用匿名内部类来定义过滤条件filter,然后调用方法list(filter)。

③表示根目录的File对象是new File(″G:\\myDir″)。

④if(currFile.isFile()&&name.indexOf(″.java″)!=-1)判断当前File对象是否为文件,并且文件后缀是否为.java。若同时成立,判断结果为true,否则为false。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈