Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Informática para Internet / Desenvolvimento Desktop / Aula
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.
Iterable<Path> irs = FileSystems.getDefault().getRootDirectories();
for (Path name: irs) {
System.err.println(name);
}
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:
try {
Files.createDirectories(dir);
} catch (IOException ex) {
ex.printStackTrace();
}
É 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.
Path dir2 = Paths.get(“c:\\”);
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir2)) {
for (Path file3 : stream) {
System.out.println(file3.getFileName());
}
} catch (IOException | DirectoryIteratorException x) {
System.err.println(x);
}
Versão 5.3 - Todos os Direitos reservados