Cursos / Informática para Internet / Desenvolvimento Desktop / Aula

arrow_back Aula 14 - Arquivos – Lendo, Escrevendo e Criando - Parte 2

Criando e Lendo Diretórios

Listando a raiz de diretórios do sistema de arquivos:

É possível listar todos os diretórios raiz do sistema de arquivos através do método FileSystem.getRootDirectories. Esse método retorna um Iterable que permite o uso do laço for reforçado para iterar (repetir, tornar a fazer a mesma coisa até o limite predeterminado) sobre todos os diretórios raiz.

O seguinte trecho de código imprime os diretórios raiz do sistema de arquivos padrão.

AخA
1
Iterable<Path> irs = FileSystems.getDefault().getRootDirectories();
2
for (Path name: irs) {
3
    System.err.println(name);
4
}

Criando um Diretório

Pode-se criar um novo diretório através do método createDirectory(Path, FileAttribute<?>). Se não forem especificados nenhum atributo, o novo diretório terá atributos padrão. Por exemplo:

5
1
try {
2
    Files.createDirectories(dir);
3
} catch (IOException ex) {
4
    ex.printStackTrace();
5
}

Listando o Conteúdo de um Diretório

É possível listar todo o conteúdo de um diretório usando o método newDirectoryStream(Path). Esse método retorna um objeto que implementa a interface DirectoryStream. A classe que implementa a interface DirectoryStream também implementa Iterable. Assim, é possível iterar através do directory stream (fluxo do diretório) lendo todos os objetos. Essa abordagem funciona bem com diretórios muito grandes.

8
1
Path dir2 = Paths.get(“c:\\”);
2
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir2)) {
3
    for (Path file3 : stream) {
4
        System.out.println(file3.getFileName());
5
    }
6
} catch (IOException | DirectoryIteratorException x) {
7
    System.err.println(x);
8
}

Versão 5.3 - Todos os Direitos reservados