Ví dụ 1:
Dưới đây là ví dụ về tìm các file dựa vào phần mở rộng trong java bằng cách implements giao tiếp FilenameFilter, trong ví dụ này chúng ta tìm kiếm các file có phần mở rộng là .txt trong thư mục log.
File: FindFileByExtension.java
import java.io.File; import java.io.FilenameFilter; public class FindFileByExtension { private static final String FILE_DIR = "D:\\log"; private static final String FILE_TEXT_EXT = ".txt"; public static void main(String args[]) { new FindFileByExtension().listFile(FILE_DIR, FILE_TEXT_EXT); } public void listFile(String folder, String ext) { GenericExtFilter filter = new GenericExtFilter(ext); File dir = new File(folder); if (dir.isDirectory() == false) { System.out.println("Directory does not exists : " + FILE_DIR); return; } // list out all the file name and filter by the extension String[] list = dir.list(filter); if (list.length == 0) { System.out.println("no files end with : " + ext); return; } for (String file : list) { String temp = new StringBuffer(FILE_DIR).append(File.separator).append(file).toString(); System.out.println("file : " + temp); } } // inner class, generic extension filter public class GenericExtFilter implements FilenameFilter { private String ext; public GenericExtFilter(String ext) { this.ext = ext; } public boolean accept(File dir, String name) { return (name.endsWith(ext)); } } }
Ví dụ 2:
Dưới đây là ví dụ về tìm các file dựa vào phần mở rộng trong java bằng cách sử dụng lớp nặc danh, trong ví dụ này chúng ta tìm kiếm các file có phần mở rộng là .txt trong thư mục log.
File: FindFileByExtension2.java
import java.io.File; import java.io.FilenameFilter; public class FindFileByExtension2 { private static final String FILE_DIR = "D:\\log"; private static final String FILE_TEXT_EXT = ".txt"; public static void main(String args[]) { new FindFileByExtension().listFile(FILE_DIR, FILE_TEXT_EXT); } public void listFile(String folder, String ext) { File dir = new File(folder); if (dir.isDirectory() == false) { System.out.println("Directory does not exists : " + FILE_DIR); return; } // list out all the file name and filter by the extension String[] list = dir.list(new FilenameFilter() { @Override public boolean accept(File dir, String name) { return name.endsWith(FILE_TEXT_EXT); } }); if (list.length == 0) { System.out.println("no files end with : " + ext); return; } for (String file : list) { String temp = new StringBuffer(FILE_DIR).append(File.separator).append(file).toString(); System.out.println("file : " + temp); } } }