2011-11-22 2 views
7

디렉토리에 특정 확장자 (예 : .txt)가있는 파일을 모두 가져와야합니다. '.txt'및 '.TXT'확장자를 가진 모든 파일을 나열 할 수 있어야합니다 (대소 문자를 구분하지 않아야 함). 나는 이것을 위해 다음과 같은 클래스를 작성했다. 이를 달성하기 위해 다음과 같은 수업에서 어떤 변화를 주어야합니까?Java FilenameFilter

class OnlyExt implements FilenameFilter { 
    String ext; 

    public OnlyExt(String ext) { 
     this.ext = "." + ext; 
    } 

    public boolean accept(File dir, String name) { 
     return name.endsWith(ext); 
    } 
} 

글쎄, 나는 accept()name.toLowerCase().endsWith(ext);을 시도하지만, 작동하지 않았다.

미리 감사드립니다.

답변

14

확장자도 소문자로 사용해야합니다.

class OnlyExt implements FilenameFilter { 
    String ext; 

    public OnlyExt(String ext) { 
     this.ext = ("." + ext).toLowerCase(); 
    } 

    public boolean accept(File dir, String name) { 
     return name.toLowerCase().endsWith(ext); 
    } 
} 

또한, 이미 선도적가 있는지 생성자에서 확인하는 것이 좋습니다이 될 수 있습니다 "." 그렇다면 다른 것을 앞에 붙이지 마십시오.