FileFilter

import java.io.*;
import java.util.*;
import java.util.regex.Pattern;

public class FileFilter {

     static void LoopDir(File f){
  String[] list;
  list = f.list();
  Arrays.sort(list);
   for ( int i = 0; i < list.length; i++) {
      File file = new File(list[i]);
      System.out.println(list[i]);
       if(file.isDirectory())
    LoopDir(file);
  }
    }
  
     public static void main(String[] args) {
   //遍历当前目录和所有子目录及文件
   //LoopDir(new File("."));
  
   //直接利用DIrFilter进行过滤
  File Dir = new File( ".");
  String[] list;
  list = Dir.list( new DirFilter( ".*txt"));
  Arrays.sort(list);
   for ( int i = 0; i < list.length; i++) {
      System.out.println(list[i]);
  }  
  
   File[] files = Dir.listFiles();
   for ( int i = 0; i < files.length; i++) {
    System.out.println(files[i].getName());
  }
    
    }  
}

class DirFilter implements FilenameFilter{
     private Pattern pattern;
  
     public DirFilter(String regex){
  pattern = Pattern.compile(regex);
    }
  
     public boolean accept(File dir,String name){
   return pattern.matcher( new File(name).getName()).matches();
    }
}

你可能感兴趣的:(职场,I/O,休闲,FileFilter)