FilenameFilter總結


一、FilenameFilter介紹

 

java.io.FilenameFilter是文件名過濾器,用來過濾不符合規格的文件名,並返回合格的文件;

一般地:

(1)String[] fs = f.list();

(2)File[] fs = f.listFiles();

這兩個方法返回f下的所有文件或目錄;

FilenameFilter用來把符合要求的文件或目錄返回;

因此可以調用:

(1)String []fs = f.list(FilenameFilter filter);;

(2)File[]fs = f.listFiles(FilenameFilter filter);

 

二、文件名過濾器一般用法

 

1.實現FilenameFilter接口;

2.實現boolean accept(File dir,String name);   //dir表示文件的當前目錄,name表示文件名;

class DirFilter implements FilenameFilter{

private Pattern pattern;            

public DirFilter(String regex){

this.pattern = Pattern.compile(regex);

}

public boolean accept(File dir,String name){           //返回true的文件則合格

 

}

三、實例

package test1;

import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern;

public class DirList {
    public static void main(String[] args){
        File path=new File(".");
        String[] list;
        if(args.length==0){
            list=path.list();
        }else{
            list=path.list(new DirFilter(args[0]));
        }
        Arrays.sort(list,String.CASE_INSENSITIVE_ORDER);
        for(String dirItem:list){
            System.out.println(dirItem);
        }
    }
}

class DirFilter implements FilenameFilter{
    private Pattern pattern;
    
    public DirFilter(String regex){
        pattern=Pattern.compile(regex);
    }

    @Override
    public boolean accept(File dir, String name) {    
        return pattern.matcher(name).matches();
    }
    
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM