如何从Java中的文件夹获取所有文件/文件夹的列表?

命名类文件中的java.io包表示系统中一个文件或目录(路径名)。此类提供了各种方法来对文件/目录执行各种操作。

为了获得目录中所有现有文件的列表,此类提供了list()具有不同变体的files类提供(返回名称)和ListFiles(返回File对象)。

List()方法

此方法返回一个String数组,其中包含当前(文件)对象表示的路径中所有文件和目录的名称。

使用此方法,您可以仅打印文件和目录的名称。

示例

以下Java程序列出了路径D:\\ ExampleDirectory中所有文件和目录的名称。

import java.io.File;

import java.io.IOException;

public class ListOfFiles {

   public static void main(String args[]) throws IOException {

      //为目录创建文件对象

      File directoryPath = new File("D:\\ExampleDirectory");

      //所有文件和目录的列表

      String contents[] = directoryPath.list();

      System.out.println("指定目录中的文件和目录列表:");

      for(int i=0; i<contents.length; i++) {

         System.out.println(contents[i]);

      }

   }

}

输出结果

指定目录中的文件和目录列表:

SampleDirectory1

SampleDirectory2

SampleFile1.txt

SampleFile2.txt

SapmleFile3.txt

ListFiles()方法

此方法返回一个数组,该数组保存当前(文件)对象表示的路径中所有文件(和目录)的对象(抽象路径)。

由于此方法返回文件夹中每个文件/目录的对象。使用它,您可以访问文件/目录的属性,例如大小,路径等。

示例

以下Java程序将打印路径D:\\ ExampleDirectory中所有文件的名称,路径和大小。

import java.io.File;

import java.io.IOException;

public class ListOfFiles {

   public static void main(String args[]) throws IOException {

      //为目录创建文件对象

      File directoryPath = new File("D:\\ExampleDirectory");

      //所有文件和目录的列表

      File filesList[] = directoryPath.listFiles();

      System.out.println("指定目录中的文件和目录列表:");

      for(File file : filesList) {

         System.out.println("File name: "+file.getName());

         System.out.println("File path: "+file.getAbsolutePath());

         System.out.println("Size :"+file.getTotalSpace());

         System.out.println(" ");

      }

   }

}

输出结果

指定目录中的文件和目录列表:

File name: SampleDirectory1

File path: D:\ExampleDirectory\SampleDirectory1

Size :262538260480

File name: SampleDirectory2

File path: D:\ExampleDirectory\SampleDirectory2

Size :262538260480

File name: SampleFile1.txt

File path: D:\ExampleDirectory\SampleFile1.txt

Size :262538260480

File name: SampleFile2.txt

File path: D:\ExampleDirectory\SampleFile2.txt

Size :262538260480

File name: SapmleFile3.txt

File path: D:\ExampleDirectory\SapmleFile3.txt

Size :262538260480

List(FilenameFilter filter)方法

如其签名所建议,此方法接受FilenameFilter对象,并返回一个String数组,其中包含当前(File)对象表示的路径中所有文件和目录的名称。但是重新调整后的数组包含基于指定过滤器过滤的文件名。

使用此方法,您可以获取特定文件夹中文件和目录的过滤名称。

示例

以下Java程序在路径D:\\ ExampleDirectory中打印文本文件的名称。

import java.io.File;

import java.io.FilenameFilter;

import java.io.IOException;

public class ListOfFiles {

   public static void main(String args[]) throws IOException {

      //为目录创建文件对象

      File directoryPath = new File("D:\\ExampleDirectory");

      FilenameFilter textFilefilter = new FilenameFilter(){

         public boolean accept(File dir, String name) {

            String lowercaseName = name.toLowerCase();

            if (lowercaseName.endsWith(".txt")) {

               return true;

            } else {

               return false;

            }

         }

      };

      //所有文本文件列表

      String filesList[] = directoryPath.list(textFilefilter);

      System.out.println("指定目录中的文本文件列表:");

      for(String fileName : filesList) {

         System.out.println(fileName);

      }

   }

}

输出结果

指定目录中的文本文件列表-

SampleFile1.txt

SampleFile2.txt

SapmleFile3.txt

ListFiles(FilenameFilter filter)方法

此方法接受FilenameFilter对象,并返回一个File数组,该数组包含当前File对象表示的路径中所有文件和目录的对象。但是重新调整后的数组包含根据文件名过滤的文件(对象)

使用此方法,您可以根据文件和目录的名称获得文件和目录的过滤文件对象。

示例

以下Java程序在路径D:\\ ExampleDirectory中打印所有文本文件的名称,路径和大小。

import java.io.File;

import java.io.FilenameFilter;

import java.io.IOException;

public class ListOfFiles {

   public static void main(String args[]) throws IOException {

      //为目录创建文件对象

      File directoryPath = new File("D:\\ExampleDirectory");

      FilenameFilter textFilefilter = new FilenameFilter(){

         public boolean accept(File dir, String name) {

            String lowercaseName = name.toLowerCase();

            if (lowercaseName.endsWith(".txt")) {

               return true;

            } else {

               return false;

            }

         }

      };

      //所有文本文件列表

      File filesList[] = directoryPath.listFiles(textFilefilter);

      System.out.println("指定目录中的文本文件列表:");

      for(File file : filesList) {

         System.out.println("File name: "+file.getName());

         System.out.println("File path: "+file.getAbsolutePath());

         System.out.println("Size :"+file.getTotalSpace());

         System.out.println(" ");

      }

   }

}

输出结果

指定目录中的文本文件列表:

File name: SampleFile1.txt

File path: D:\ExampleDirectory\SampleFile1.txt

Size :262538260480

File name: SampleFile2.txt

File path: D:\ExampleDirectory\SampleFile2.txt

Size :262538260480

File name: SapmleFile3.txt

File path: D:\ExampleDirectory\SapmleFile3.txt

Size :262538260480

ListFiles(FileFilter filter)方法

此方法接受FileFilter对象,并返回一个File数组,该数组包含当前File对象表示的路径中所有文件和目录的(File)对象。但是,重新调整后的数组包含根据文件属性过滤的文件(对象)。

使用此方法,您可以根据大小,路径,类型(文件或目录)等获取特定文件夹中文件和目录的过滤文件对象。

示例

以下Java程序在路径D:\\ ExampleDirectory中打印所有文件(而非文件夹)的名称,路径和大小。

import java.io.File;

import java.io.FileFilter;

import java.io.IOException;

public class ListOfFiles {

   public static void main(String args[]) throws IOException {

      //为目录创建文件对象

      File directoryPath = new File("D:\\ExampleDirectory");

      FileFilter textFilefilter = new FileFilter(){

         public boolean accept(File file) {

            boolean isFile = file.isFile();

            if (isFile) {

               return true;

            } else {

               return false;

            }

         }

      };

      //所有文本文件列表

      File filesList[] = directoryPath.listFiles(textFilefilter);

      System.out.println("指定目录中的文本文件列表:");

      for(File file : filesList) {

         System.out.println("File name: "+file.getName());

         System.out.println("File path: "+file.getAbsolutePath());

         System.out.println("Size :"+file.getTotalSpace());

         System.out.println(" ");

      }

   }

}

输出结果

指定目录中的文本文件列表:

File name: cassandra_logo.jpg

File path: D:\ExampleDirectory\cassandra_logo.jpg

Size :262538260480

File name: cat.jpg

File path: D:\ExampleDirectory\cat.jpg

Size :262538260480

File name: coffeescript_logo.jpg

File path: D:\ExampleDirectory\coffeescript_logo.jpg

Size :262538260480

File name: javafx_logo.jpg

File path: D:\ExampleDirectory\javafx_logo.jpg

Size :262538260480

File name: SampleFile1.txt

File path: D:\ExampleDirectory\SampleFile1.txt

Size :262538260480

File name: SampleFile2.txt

File path: D:\ExampleDirectory\SampleFile2.txt

Size :262538260480

File name: SapmleFile3.txt

File path: D:\ExampleDirectory\SapmleFile3.txt

Size :262538260480

以上是 如何从Java中的文件夹获取所有文件/文件夹的列表? 的全部内容, 来源链接: utcz.com/z/326715.html

回到顶部