Javaexamples-dir-display

提供:Dev Guides
移動先:案内検索

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