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