Java - File list() 方法



描述

Java File list(FilenameFilter filter) 方法返回由该抽象路径名定义的目录中满足给定过滤器的文件和目录的数组。如果给定的过滤器为空,则接受所有名称。

声明

以下是 java.io.File.list(FilenameFilter filter) 方法的声明:

public String[] list(FilenameFilter filter)

参数

返回值

该方法返回由该抽象路径名定义的目录中满足给定过滤器的文件和目录的数组。

异常

SecurityException - 如果存在安全管理器并且其 SecurityManager.checkRead(java.lang.String) 方法拒绝对文件的读取访问权限

示例 1

以下示例演示了 Java File list(filter) 方法的用法。我们通过实现 FilenameFilter 类创建了一个过滤器类。此类正在实现 accept 方法,如果文件名以 "txt" 结尾则返回 true。我们将在程序中使用此类来过滤文本文件。我们创建了一个 File 引用。然后我们使用提供的目录中存在的 test 目录创建一个 File 对象。然后我们使用 list(filter) 方法将 test 目录中存在的文本文件列表获取到字符串数组中。然后迭代此数组以打印给定目录中可用的文件。

package com.tutorialspoint;
import java.io.File;
import java.io.FilenameFilter;
public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
      String[] paths;

      try {    

         // create new file
         f = new File("F:/Test2");

         // create new filter
         FilenameFilter filter = new TextFileFilter();

         // array of files and directory
         paths = f.list(null);

         if(paths != null) {
            // for each name in the path array
            for(String path:paths) {

               // prints filename and directory name
               System.out.println(path);
            }
         }else {
            System.out.println("Files are not present");
         }

      } catch(Exception e) {
         // if any error occurs
         e.printStackTrace();
      }
   }
}

class TextFileFilter implements FilenameFilter{

   @Override
   public boolean accept(File dir, String name) {
      return name.endsWith("txt");
   }	
}

输出

让我们编译并运行以上程序,这将产生以下结果:

test.txt
Test1.txt

示例 2

以下示例演示了 Java File list(filter) 方法的用法。我们创建了一个 File 引用。然后我们使用提供的目录中存在的 test 目录创建一个 File 对象。然后我们使用 list(filter) 方法将 test 目录中存在的所有文件列表获取到字符串数组中。我们传递了 filter 为 null,以便所有文件都显示。然后迭代此数组以打印给定目录中可用的文件。

package com.tutorialspoint;
import java.io.File;
public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
      String[] paths;

      try {    

         // create new file
         f = new File("F:/Test2");

         // array of files and directory
         paths = f.list(null);

         if(paths != null) {
            // for each name in the path array
            for(String path:paths) {

               // prints filename and directory name
               System.out.println(path);
            }
         }else {
            System.out.println("Files are not present");
         }

      } catch(Exception e) {
         // if any error occurs
         e.printStackTrace();
      }
   }
}

输出

让我们编译并运行以上程序,这将产生以下结果:

test.pptx
test.txt
Test1.txt

示例 3

以下示例演示了 Java File list(filter) 方法的用法。我们创建了一个 File 引用。然后我们使用提供的目录中不存在的 test3 目录创建一个 File 对象。然后我们使用 list() 方法将 test 目录中存在的文件列表获取到字符串数组中。然后迭代此数组以打印给定目录中可用的文件。由于文件夹不存在,数组将为空,并且我们打印一条消息 - “文件不存在”。

package com.tutorialspoint;
import java.io.File;
public class FileDemo {
   public static void main(String[] args) {      
      File f = null;
      String[] paths;

      try {    

         // create new file
         f = new File("F:/Test3");
		 
         // array of files and directory
         paths = f.list(null);

         if(paths != null) {
            // for each name in the path array
            for(String path:paths) {

               // prints filename and directory name
               System.out.println(path);
            }
         }else {
            System.out.println("Files are not present");
         }
      } catch(Exception e) {
         // if any error occurs
         e.printStackTrace();
      }
   }
}

输出

让我们编译并运行以上程序,这将产生以下结果:

Files are not present
java_file_class.htm
广告