如何在 Java 中搜索目录内的所有文件

问题描述

如何搜索目录内的所有文件?

解决方案

以下示例演示如何使用 File 类的 dir.list() 方法搜索并获取指定目录下所有文件的列表。

import java.io.File;

public class Main {
   public static void main(String[] argv) throws Exception {
      File dir = new File("directoryName");
      String[] children = dir.list();
      
      if (children == null) {
         System.out.println("does not exist or 
         is not a directory");
      } else {
         for (int i = 0; i < children.length; i++) {
            String filename = children[i];
            System.out.println(filename);
         }
      }
   }
}

结果

上述代码示例将产生以下结果。

sdk
---vehicles
------body.txt
------color.txt
------engine.txt
---ships
------shipengine.txt

以下是另一个使用 Java 搜索目录内所有文件的示例

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class Main { 
   public static void main(String[] args) throws IOException {
      System.out.println("Enter the path to folder to search for files");
      Scanner s1 = new Scanner(System.in);
      String folderPath = s1.next();
      File folder = new File(folderPath);
      
      if (folder.isDirectory()) {
         File[] listOfFiles = folder.listFiles();
         if (listOfFiles.length < 1)System.out.println(
            "There is no File inside Folder");
         else System.out.println("List of Files & Folder");
         for (File file : listOfFiles) {
            if(!file.isDirectory())System.out.println(
               file.getCanonicalPath().toString());
         } 
      } 
      else System.out .println("There is no Folder @ given path :" + folderPath);
   }
}

上述代码示例将产生以下结果。

Enter the path to folder to search for files
C:/
List of Files & Folder
C:\bootmgr
C:\BOOTNXT
C:\hiberfil.sys
C:\pagefile.sys
C:
ecovery.img.img
C:\swapfile.sys
java_directories.html