如何使用 Java 只从一个文件夹中获取目录?


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

File Filter 接口是你可以将它作为参数传递给 listFiles() 方法的路径名的过滤器。此方法过滤传递到传递的过滤器中的文件名。

要获取文件夹中的目录,请实现一个只接受目录的 FileFilter,并将其作为 listFiles() 方法的参数传递。

以下是 ExampleDirectory 的内容的屏幕截图

示例

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
public class MyExample{
   public static void main(String args[]) throws IOException {
    //Creating a File object for directory
    File directoryPath = new File("D:\ExampleDirectory");
    //Creating filter for directories files
    FileFilter fileFilter = new FileFilter(){
         public boolean accept(File dir) {          
            if (dir.isDirectory()) {
               return true;
            } else {
               return false;
            }
         }
      };        
      File[] list = directoryPath.listFiles(fileFilter);
      System.out.println("List of the jpeg files in the specified directory:");  
      for(File fileName : list) {
         System.out.println(fileName);
      }  
   }
}

输出

List of the jpeg files in the specified directory:
D:\ExampleDirectory\sample directory1
D:\ExampleDirectory\sample directory2
D:\ExampleDirectory\sample directory3
D:\ExampleDirectory\sample directory4

示例

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;
public class ListOfFiles {
   public static void main(String[] args) throws IOException {
      Stream<Path> path = Files.walk(Paths.get("D:\ExampleDirectory"));
      path = path.filter(Files::isDirectory);
      path.forEach(System.out::println);
    }
}

输出

D:\ExampleDirectory
D:\ExampleDirectory\sample directory1
D:\ExampleDirectory\sample directory2
D:\ExampleDirectory\sample directory3
D:\ExampleDirectory\sample directory4

更新于: 2021-02-08

955 次浏览

开启你的 职业生涯

完成课程以获得认证

开始吧
广告