java文件过滤器(File类listFiles方法可选参数)获取目录下指定的某类文件(zhuan)...

    有时候需要在程序中查找某一目录下的某一类文件,例如需要在E:\data\file_selector_test 目录下面查找所有已.java为后缀名的文件。其实这个功能自己也可以实现,很简单,只需要遍历一下目录下的所有文件,判断一下文件名称的结尾字符串是否为".java"即可。虽然这么做可以实现,但是没有必要,java api中已经有相关的方法来实现这一功能。

File类有一个listFiles(FileNameFilter filter).只需要实现一个简单的filter就可以做到。例如我要在E:\data\file_selector_test 目录下面查找以.java 或者.txt结尾的文件,我可以这么做。见下例。

类名:FileNameSelector

 

import java.io.File;

    import java.io.FilenameFilter;

 

public class FileNameSelector implements FilenameFilter

{

 String extension = ".";

 public FileNameSelector(String fileExtensionNoDot)

 {

  extension += fileExtensionNoDot;

 }

 @Override

 public boolean accept(File dir, String name)

 {

  return name.endsWith(extension);

 }

 public static void main(String[] args)

 {

  File directory = new File("E:\\data\\file_selector_test");

  //列出所有文件

  File[] files = directory.listFiles();

  System.out.println("\n目录"+directory.getName()+"下的所有文件");

  for(File file : files)

  {

   System.out.print("  " + file.getName());

  }

  //列出所有.txt文件

  File[] txtFiles = directory.listFiles(new FileNameSelector("txt"));

  System.out.println("\n目录"+directory.getName()+"下的.txt文件");

  for(File file : txtFiles)

  {

   System.out.print("  " + file.getName());

  }

  

  //列出所有.java文件

  File[] javaFiles = directory.listFiles(new FileNameSelector("java"));

  System.out.println("\n目录"+directory.getName()+"下的.java文件");

  for(File file : javaFiles)

  {

   System.out.print("  " + file.getName());

  }

 }

}

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值