1. 程式人生 > >java獲取指定路徑下的指定檔案/java.io.File.listFiles(FilenameFilter filter)

java獲取指定路徑下的指定檔案/java.io.File.listFiles(FilenameFilter filter)

java.io.File.listFiles(FilenameFilter filter) 返回抽象路徑名陣列,表示在目錄中此抽象路徑名錶示,滿足指定過濾器的檔案和目錄。

宣告

以下是java.io.File.listFiles(FilenameFilter filter)方法的宣告:

public File[] listFiles(FilenameFilter filter)

引數

  • filter - 檔名過濾器

返回值

該方法返回抽象路徑名陣列,表示在目錄中此抽象路徑名錶示,滿足指定過濾器的檔案和目錄。

異常

  • SecurityException -- 如果安全管理器存在並且其SecurityManager.checkRead(java.lang.String) 方法拒絕對檔案的讀訪問

例子

下面的例子顯示java.io.File.listFiles(FilenameFilter filter)方法的用法。

package com.yiibai;

import java.io.File;
import java.io.FilenameFilter;

public class FileDemo {
   public static void main(String[] args) {
      
      File f = null;
      File[] paths;
      
      try{      
         // create new file
         f = new File("c:/test");
         
         // create new filename filter
         FilenameFilter fileNameFilter = new FilenameFilter() {
   
            @Override
            public boolean accept(File dir, String name) {
               if(name.lastIndexOf('.')>0)
               {
                  // get last index for '.' char
                  int lastIndex = name.lastIndexOf('.');
                  
                  // get extension
                  String str = name.substring(lastIndex);
                  
                  // match path name extension
                  if(str.equals(".txt"))
                  {
                     return true;
                  }
               }
               return false;
            }
         };
         // returns pathnames for files and directory
         paths = f.listFiles(fileNameFilter);
         
         // for each pathname in pathname array
         for(File path:paths)
         {
            // prints file and directory paths
            System.out.println(path);
         }
      }catch(Exception e){
         // if any error occurs
         e.printStackTrace();
      }
   }
}

讓我們編譯和執行上面的程式,這將產生以下結果:

c:	estchild_test.txt