Lista apenas as pastas de certa profundidade usando Java 8 fluxos

Lona:

Considerando que não é o "novo" córregos API em Java 8 posso usar Files.walkpara iterar sobre uma pasta. Como posso só obter as pastas filho de meu diretório dado se usar este método ou talvez profundidade = 2?

Eu tenho atualmente este exemplo de trabalho, o que, infelizmente, também imprime o caminho raiz de todos os "subpastas".

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

Por isso, revertido para a seguinte abordagem . Que armazena as pastas na memória e necessita de tratamento da lista armazenada depois, o que eu iria evitar e uso lambdas vez.

File[] directories = new File("/your/path/").listFiles(File::isDirectory);
Andreas:

A lista apenas sub-diretórios de um determinado diretório:

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()));

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=171908&siteId=1
Recomendado
Clasificación