web-dev-qa-db-ja.com

ディレクトリ/フォルダ内のサブディレクトリを見つける方法は?

ファイルではなく、指定されたディレクトリ内のすべてのディレクトリ名を取得する方法を探しています。

たとえば、Parentというフォルダーがあり、その中に3つのフォルダーがあるとしましょう:Child1Child2およびChild3

フォルダーの名前を取得したいのですが、内容や、Child1、Child2などの中のサブフォルダーの名前は気にしません。

これを行う簡単な方法はありますか?

21
iaacp

String[] directories = file.list()を使用してすべてのファイル名をリストし、ループを使用して各サブファイルをチェックし、file.isDirectory()関数を使用してサブディレクトリを取得できます。

例えば:

File file = new File("C:\\Windows");
String[] names = file.list();

for(String name : names)
{
    if (new File("C:\\Windows\\" + name).isDirectory())
    {
        System.out.println(name);
    }
}
21
bhuang3

Java 7を使用している場合は、で提供されているサポートを使用してみてください。

package Java.nio.file 

ディレクトリに多数のエントリがある場合、最初にすべてをメモリに読み込まずにリストを開始できます。詳細については、javadocを参照してください: http://docs.Oracle.com/javase/7/docs/api/Java/nio/file/Files.html#newDirectoryStream(Java.nio.file.Path、%20Java .lang.String)

ニーズに合わせた例もここにあります。

public static void main(String[] args) {
    DirectoryStream.Filter<Path> filter = new DirectoryStream.Filter<Path>() {
        @Override
        public boolean accept(Path file) throws IOException {
            return (Files.isDirectory(file));
        }
    };

    Path dir = FileSystems.getDefault().getPath("c:/");
    try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, filter)) {
        for (Path path : stream) {
            // Iterate over the paths in the directory and print filenames
            System.out.println(path.getFileName());
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}
24
Aksel Willgert
public static void displayDirectoryContents(File dir) {
    try {
        File[] files = dir.listFiles();
        for (File file : files) {
            if (file.isDirectory()) {
                System.out.println("Directory Name==>:" + file.getCanonicalPath());
                displayDirectoryContents(file);
            } else {
                System.out.println("file Not Acess===>" + file.getCanonicalPath());
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

==== insideクラス/メソッド提供ファイル= URL ======

    File currentDir = new File("/home/akshya/NetBeansProjects/");
    displayDirectoryContents(currentDir);
}
0
user4890101