1. 程式人生 > 實用技巧 >FileFilter過濾器的原理和使用。案例:將.java結尾的檔案輸出

FileFilter過濾器的原理和使用。案例:將.java結尾的檔案輸出

package com.chunzhi.Test03Filter;

import java.io.File;

public class Test01Filter {
    public static void main(String[] args) {
        File f = new File("C:\\Other\\abc");
        getAllFile(f);
    }

    public static void getAllFile(File dir) {
        File[] files = dir.listFiles(new FileFilterImpl());
        
for (File f : files) { // 對遍歷得到的File物件f進行判斷,判斷是否為資料夾 if (f.isDirectory()) { // f是一個資料夾則繼續遍歷這個資料夾,不是資料夾則執行下一個方法體 getAllFile(f); } else { // f是一個檔案,直接列印即可 System.out.println(f); } } } }
package com.chunzhi.Test03Filter;

import java.io.File;
import java.io.FileFilter;
/*
    建立過濾器FileFilter的實現類,重寫過濾方法accept,自定義過濾規則
 */
public class FileFilterImpl implements FileFilter {

    @Override
    public boolean accept(File pathname) {
        // 如果pathname(路徑名)是一個資料夾則返回true
        if (pathname.isDirectory()) {
            
return true; } // 不是的話,則將傳遞過來的路徑名進行檔名稱獲取,轉為小寫,看檔案結尾是否以.java結尾 return pathname.getName().toLowerCase().endsWith(".java"); } }