檔案字尾名的過濾

不設限發表於2011-12-08

定義過濾類:

主要是實現FileFilter介面裡面的accept()方法,

通過此方法來實現對指定資料夾下面的檔案類

型的過濾.

 

package chapter10.branch08;

import java.io.File;
import java.io.FileFilter;

public class Myfilter implements FileFilter {
 private String extension;
 //定義擴充套件的字尾名
 public Myfilter(String extension) {
  super();
  this.extension = extension;
 }
 public String getExtension() {
  return extension;
 }
 public void setExtension(String extension) {
  this.extension = extension;
 }
 //實現FileFilter的accept方法
 @Override
 public boolean accept(File file) {
  if(file.isDirectory())
   return false;
  //提取檔名
  String name=file.getName();
  //提取字尾
  int index=name.lastIndexOf(".");
  if(index==-1||index==name.length()-1) {
   return false;
  }else{
   return name.substring(index).equals(extension);
  }
 }

}

 

 

測試類:

 

package chapter10.branch08;
import java.io.File;
public class Test {
 public static void main(String[] args) {
  Test t=new Test();
  //在測試的時候,副檔名藥帶上".",因為MyFileter裡
  //面的獲取的那部分是包括了"."的
  t.dir("E:\\file", ".txt");
 }
 
 public void dir(String path,String extension) {
  //構造資料夾
  File directory=new File(path);
  //例項化filter類
  Myfilter mf=new Myfilter(extension);
  //獲取檔案
  File[] fs=directory.listFiles(mf);
  System.out.println("路徑:\t"+path);
  System.out.println("檔案:");
  for(File file:fs) {
   System.out.println("\t"+file.getName());
  }
 }
}

 

 

 

 

相關文章