Blogger Scott

          使用FileFilter查找文件系統

          如果你想快速地從一個文件結構中找出指定類型的所有文件,可使用 JAVA.io.FileFilter實現。

          FileFilter是JDK 1.2的許多附加部分之一。這個簡單的接口用于一個文件是否被接受。它一個非常一般的方法,去找出一個文檔系統。在FileFilter和其早期接口FilenameFilter間最大的不同就是:FileFilter使文件作為一個文件對象,而FilenameFilter使文件作為一個目錄和一個字符串名被過濾。

          例如:FileFilter接口包含如下方法:

          boolean accept(File file);
          而FilenameFilter包含如下方法:

          boolean accept(File directory, String name);
          一個簡單的文件過濾是已知文件擴展名,你可以使用FilenameFilter 接口,但它卻難以知道這個文件名到底是一個文件還是一個目錄。為了去解決這個問題,你需要去做一個文件對象,與其自己去做,不如使用FileFilter接口,如下是ExtensionFileFilter代碼:

          package com.generationjava.io.find;

          import JAVA.io.File;
          import JAVA.io.FileFilter;

          public class ExtensionFileFilter implements FileFilter {

          private String extension;

          public ExtensionFileFilter(String extension) {
          this.extension = extension;
          }

          public boolean accept(File file) {
          if(file.isDirectory( )) {
          return false;
          }

          String name = file.getName( );
          // find the last
          int idx = name.lastIndexOf(".");
          if(index == -1) {
          return false;
          } else
          if(index == name.length( ) -1) {
          return false;
          } else {
          return this.extension.equals(name.substring(index+1));
          }
          }

          }
          下面的例子使用了上面的代碼:

          ...
          String dir = "..."; // directory of your choice
          File file = new File(dir);
          File[] files = file.listFiles(new ExtensionFileFilter("cfg"));

          // files variable is now c:*.cfg if ´dir´ is c:
          // that is, all the files in the specified directory ending in *.cfg
          ...

          FileFilter有一個父類在javax.swing.filechooser,FileFilter是一個抽象類,經常和JFileChoosers一起使用。如果這樣做的話,你將必須去寫一個標準的適配器。




          摘自:ZDnet   時間:2003年9月10日

          posted on 2009-05-30 18:52 江天部落格 閱讀(931) 評論(3)  編輯  收藏 所屬分類: Java

          Feedback

          # re: 使用FileFilter查找文件系統 2010-09-30 12:28 陳石生

          諾基亞5320di電腦PC套件連接不上,電腦USB接口沒反應?  回復  更多評論   

          # re: 使用FileFilter查找文件系統 2010-10-10 17:25 蔣付懋

          我 來 也  回復  更多評論   

          # re: 使用FileFilter查找文件系統 2010-10-10 17:25 蔣付懋

          我 來 也   回復  更多評論   

          主站蜘蛛池模板: 深泽县| 凌海市| 白山市| 北流市| 茌平县| 德格县| 交城县| 南丰县| 合山市| 黔西| 郓城县| 正安县| 蒲城县| 合作市| 玛多县| 达日县| 阳朔县| 富民县| 平果县| 镇平县| 余姚市| 葫芦岛市| 龙南县| 多伦县| 湟中县| 泌阳县| 灵丘县| 靖西县| 靖州| 晋江市| 米脂县| 永和县| 兴业县| 阿勒泰市| 大渡口区| 依兰县| 鸡西市| 泰州市| 马山县| 河南省| 兖州市|