運用 java.io.FilenameFilter 過濾檔案
/* * Created on Jul 14, 2005 */
package test.fin.io;
import java.io.*; /** * 列出目錄下的所有檔案名稱。
* 附加功能:只過濾出副檔名為 .jsp 的檔案。 (運用java.io.FilenameFilter) * * @author y_syhung * @see java.io.FilenameFilter */ public class TestFileFilter {
/** * 測試檔案過濾器。 * * @author y_syhung */ public class TestFilenameFilter implements FilenameFilter {
/** * 預設不過濾副檔名 */ private String fileExtName = "";
/** * 建構子。
* @param fileExtName1 String 副檔名 */ public TestFilenameFilter(String fileExtName1) { this.setFileExtName(fileExtName1.toUpperCase()); }
/** * 設定副檔名。
* @param fileExtName1 String 若為 null ,將不設定限制。 */ public void setFileExtName(String fileExtName1) { if (fileExtName1 != null) { this.fileExtName = fileExtName1; } else { this.fileExtName = ""; } }
/** * 判斷是否過濾。
* @param dir File * @param filename String * @return boolean */ public boolean accept(File dir, String filename) { filename = filename.toUpperCase(); if (this.fileExtName.length() == 0 || filename.endsWith(this.fileExtName)) { return true; } return false; } }
/** * 找出篩選後的檔案名稱。 * @param path String * @param fileExtName String 要被過濾的副檔名 * @return String[] 篩選後的檔案名稱 */ public String[] list(String path, String fileExtName) { File files = new File(path); TestFilenameFilter filter = new TestFilenameFilter(fileExtName); if (files.isDirectory()) { return files.list(filter); } return null; }
public static void main(String[] args) { TestFileFilter test = new TestFileFilter(); String[] list = test.list("c:\\", ".bat"); if (list != null) { for (int i = 0; i < list.length; i++) { System.out.println(list); } } else { System.out.println("no file!"); }
} }
----------------------------------------
[編輯文章 2 次,
最後修改: Moonnight 於 2005/9/7 上午 10:41:56]
|
|