Como listar toda uma estrutura de diretórios

 
 

Dada a seguinte estrutura de diretórios vamos listar todo o conteúdo hierárquico da mesma. Obs: o código abaixo (já compilado ‘Teste.class’) se encontra na pasta [java].

 
 

 
 

 
 

 
 

 
 

 
 

 
 

import java.io.*;

 
 

public class Teste {

public static void main(String[] args){

try {

// liste o diretório atual [.]

// no caso o pequeno programa Teste.class é colocado

// na pasta [java]

File curdir = new File(“.”);

listContent(curdir);

 
 

//teste(“.”);

//teste(“Teste.java”);

//teste(“./dir1/dir2”);

 
 

} catch(Exception ex){ex.printStackTrace();}

}

 
 

public static void listContent(File curDir){

try {        

if (curDir.isDirectory()){

// imprime o nome do diretório atual.

System.out.println(“DIR: ” + curDir);

// faz o looping em todo o conteúdo do diretório.

for(String s : curDir.list()){

// monta a string com o subdiretório

String subpath = curDir.getPath() + File.separator + s;

// cria o arquivo ou diretório

File subdir = new File(subpath);

// chamada recursiva se for diretório

listContent(subdir);

}

}

 
 

if (curDir.isFile()) {

System.out.println(curDir);        

}

 
 

} catch (Exception e) {

e.printStackTrace();

}

 
 

}

public static void teste(String s){

try{

// código de teste para ver como funciona alguns métodos de File.

System.out.println();

System.out.println(“***************** testando para valor: ” + s);

File f = new File(s);

System.out.println(“is directory – ” + f.isDirectory());

System.out.println(“canonical path – ” + f.getCanonicalPath());

System.out.println(“absolute path – ” + f.getAbsolutePath());

System.out.println(“path – ” + f.getPath());

System.out.println(“name – ” + f.getName());

System.out.println(“canonical file – ” + f.getCanonicalFile());

System.out.println(“absolute file – ” + f.getAbsoluteFile());

System.out.println(“file separator ” + File.separator);

} catch(Exception e){e.printStackTrace();}

}

}

Output:

DIR: .

DIR: .\dir1

.\dir1\dentro dir1.txt

DIR: .\dir1\dir2

.\dir1\dir2\dentro dir2.txt

.\Teste.class

.\Teste.java

 
 

Anúncios
Esta entrada foi publicada em java.io com as etiquetas . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s