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:\recovery.img.img
    C:\swapfile.sys