2011-11-22 5 views
7

Tôi có yêu cầu nhận tất cả các tệp trong thư mục có phần mở rộng cụ thể (ví dụ: .txt). Tôi sẽ có thể liệt kê tất cả các tệp có phần mở rộng '.txt' và '.TXT' (nghĩa là nó không phân biệt chữ hoa chữ thường). Tôi đã viết cho lớp sau đây. Tôi nên thay đổi những gì trong lớp sau để đạt được điều này?Tên tệp JavaFilter

Vâng, tôi đã thử name.toLowerCase().endsWith(ext); trong accept(), nhưng điều đó không hiệu quả.

Xin cảm ơn trước.

Trả lời

14

Bạn cũng cần phải viết hoa chữ thường.

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); 
    } 
} 

Ngoài ra, bạn nên kiểm tra hàm tạo để xem liệu có "hàng đầu" hay không. và không phải thêm một người khác nếu có.