Trong bài viết này chúng ta sẽ tìm hiểu cách Tìm các file trong Java với phần mở rộng nhất định.Tôi sẽ lấy một ví dụ về FilenameFilter
để lọc các file có đuôi .txt. Nó sẽ chỉ hiển thị các file có phần mở rộng ” .txt ” trong thư mục “E:\\project\\huongdanjava\\javaio\\find“.
Cách xử lý để tìm các file có trung thư mục (folder)
Tạo file như sau:
package com.itphutran.file; import java.io.*; public class FindCertainExtension { private static final String FILE_DIR = "E:\\project\\huongdanjava\\javaio\\find"; private static final String FILE_TEXT_EXT = ".txt"; public static void main(String args[]) { new FindCertainExtension().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)); } } }
Kết quả:
file : E:\project\huongdanjava\javaio\find\filename.txt file : E:\project\huongdanjava\javaio\find\newFile.txt file : E:\project\huongdanjava\javaio\find\newFile2.txt file : E:\project\huongdanjava\javaio\find\newFile3.txt file : E:\project\huongdanjava\javaio\find\newFile4.txt file : E:\project\huongdanjava\javaio\find\newFileWrite.txt file : E:\project\huongdanjava\javaio\find\testFile.txt file : E:\project\huongdanjava\javaio\find\writeFile.txt