Java Java.io.File.listFiles() 方法

  • 描述

    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.jc2182;
    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:\test\child_test.txt