Java 示例 - 显示目录中的目录

  • 问题描述

    如何显示目录中的所有目录?
  • 解决方案

    以下示例显示如何显示目录中包含的所有目录,从而创建 File 类的列表方法的过滤器。
    
    import java.io.*;
    public class Main { 
       public static void main(String[] args) {
          File dir = new File("F:");
          File[] files = dir.listFiles();
          FileFilter fileFilter = new FileFilter() {
             public boolean accept(File file) {
                return file.isDirectory();
             }
          };
          files = dir.listFiles(fileFilter);
          System.out.println(files.length);
          
          if (files.length == 0) {
             System.out.println("Either dir does not exist or is not a directory");
          } else {
             for (int i = 0; i< files.length; i++) {
                File filename = files[i];
                System.out.println(filename.toString());
             }
          }
       }
    }
    
  • 结果

    上面的代码示例将产生以下结果。
    
    14
    F:\C Drive Data Old HDD
    F:\Desktop1
    F:\harsh
    F:\hharsh final
    F:\hhhh
    F:\mov
    F:\msdownld.tmp
    F:\New Folder
    F:\ravi
    F:\ravi3
    F:\RECYCLER
    F:\System Volume Information
    F:\temp
    F:\work
    
    下面是在Java中显示一个目录中所有目录的另一个例子
    
    import java.io.File;
    import java.io.IOException;
    public class FileDisplay { 
       public static void main(String[] args) {
          File currentDir = new File(".");
          displayDirectoryContents(currentDir);
       } 
       public static void displayDirectoryContents(File dir) {
          try { 
             File[] files = dir.listFiles();
             for (File file : files) {
                if (file.isDirectory()) {
                   System.out.println("directory:" + file.getCanonicalPath());
                   displayDirectoryContents(file);
                } else {
                   System.out.println("     file:" + file.getCanonicalPath());
                } 
             } 
          } catch (IOException e) {
             e.printStackTrace();
          } 
       } 
    }
    
    上面的代码示例将产生以下结果。
    
    file:/web/com/1481172458_94270/FileDisplay.java
    file:/web/com/1481172458_94270/FileDisplay.class