如何在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 ----------------

