如何在Java中的文件夹中获取某个后缀的所有文件
时间:2020-02-23 14:34:18 来源:igfitidea点击:
在本教程中,我们将看到如何在文件夹中列出具有某些扩展的所有文件。
例如,我们要在文件夹中列出所有.jpg或者.zip文件。
我们将使用filenamefilter接口列出文件夹中的文件,因此我们将创建一个内部类,该类将实现FilenameFilter接口并实现接受方法。
我们需要将创建的内部类传递给java.io.file的列表方法,以列出具有特定扩展名的所有文件。
Java程序:
package org.igi.theitroad; import java.io.File; import java.io.FilenameFilter; public class GetAllFilesWithCertainExtMain { /* * @author igi Mandliya */ public static void main(String[] args) { GetAllFilesWithCertainExtMain main=new GetAllFilesWithCertainExtMain(); System.out.println("Finding .zip files in the folder /Users/igi/Desktop/Blog"); System.out.println("-----------------"); //Read the file File folder=new File("/Users/igi/Desktop/Blog"); main.getAllFilesWithCertainExtension(folder,"zip"); System.out.println("-----------------"); } public void getAllFilesWithCertainExtension(File folder,String filterExt) { MyExtFilter extFilter=new MyExtFilter(filterExt); if(!folder.isDirectory()) { System.out.println("Not a folder"); } else { //list out all the file name and filter by the extension String[] list = folder.list(extFilter); if (list.length == 0) { System.out.println("no files end with : " + filterExt); return; } for (int i = 0; i < list.length; i++) { System.out.println("File :"+list[i]); } } } //inner class, generic extension filter public class MyExtFilter implements FilenameFilter { private String ext; public MyExtFilter(String ext) { this.ext = ext; } public boolean accept(File dir, String name) { return (name.endsWith(ext)); } } }
当我在上面的程序上运行时,我得到了以下输出:
Finding .zip files in the folder /Users/igi/Desktop/Blog ---------------- File :sampleFile1.zip File :sampleFile2.zip File :sampleFile3.zip File :Spring3-Quartz-Example.zip File :SpringQuartzIntegrationExample.zip ----------------