Javaの8つのストリームを使用して、特定の深さのリストは、フォルダのみ

LONA:

考える「新」があるAPIをストリーミングし、私が使用できるJava 8でFiles.walkフォルダを反復します。このメソッドまたは多分深さ= 2を使用している場合どのように私は私の唯一の指定されたディレクトリの子フォルダを取得することができますか?

私は現在、悲しいことも、すべての「サブフォルダ」としてルートパスを出力します。この作業例を、持っています。

Files.walk(Paths.get("/path/to/stuff/"))
     .forEach(f -> {
        if (Files.isDirectory(f)) {
            System.out.println(f.getName());
        }
     });

従って私は、次の状態に戻すアプローチこれはメモリとIの代わりにラムダを回避し、使用している、その後記憶されたリストの取り扱いニーズにフォルダを格納します。

File[] directories = new File("/your/path/").listFiles(File::isDirectory);
アンドレアス:

リストに指定したディレクトリの唯一のサブディレクトリ:

Path dir = Paths.get("/path/to/stuff/");
Files.walk(dir, 1)
     .filter(p -> Files.isDirectory(p) && ! p.equals(dir))
     .forEach(p -> System.out.println(p.getFileName()));

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=171909&siteId=1