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 江天部落格 閱讀(926) 評論(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 蔣付懋

          我 來 也   回復  更多評論   

          主站蜘蛛池模板: 阳朔县| 黑山县| 锡林郭勒盟| 衡阳市| 灵石县| 黑河市| 江源县| 临潭县| 长汀县| 康保县| 雷波县| 洪泽县| 昭觉县| 交口县| 东海县| 金坛市| 岐山县| 三穗县| 太保市| 乌拉特前旗| 永年县| 江孜县| 稻城县| 错那县| 潼关县| 博兴县| 襄城县| 公主岭市| 休宁县| 宁安市| 祥云县| 上饶县| 武平县| 拜城县| 增城市| 昭苏县| 鸡西市| 寻乌县| 凤庆县| 高清| 大同市|