Listando apenas diretórios mais rasos contendo nenhum arquivo, até o fim

1

Suponha que esta estrutura de sistema de arquivos:

ROOT
    DIR1A
        FILE
        DIR2A
        DIR2B
            DIR3A
    DIR1B
        DIR2C
        DIR2D
            DIR3B
    DIR1C
        DIR2E
            FILE

A partir de um diretório arbitrário, como listar apenas os diretórios filhos mais rasa, que por sua vez contêm a) nada ou b) somente diretórios vazios, mas sem listar os filhos vazios?

Ou seja, no caso acima, se eu comecei no ROOT:

  1. DIR1A NÃO seria listado porque contém um arquivo.
  2. DIR2A estaria listado, porque não contém nada.
  3. DIR2B SERIA listado, porque contém apenas diretórios vazios.
  4. DIR3A NÃO seria listado, porque está em um diretório mais raso que já foi listado.
  5. DIR1B estaria listado, porque contém apenas diretórios vazios.
  6. Filhos de DIR1B NÃO seriam listados porque estão em um diretório mais raso que já foi listado.
  7. Tanto o DIR1C quanto o DIR2E NÃO seriam listados, porque há um arquivo aninhado lá.

Estou confiante de que há uma maneira mais eficiente de dizer isso. Talvez "eu quero listar apenas os diretórios de maior ordem que contêm nada ou apenas diretórios vazios, todo o caminho"?

EDIT: Eu tentei esclarecer alguns dos idiomas acima.

    
por bland328 23.03.2018 / 16:23

0 respostas