Verificar a existência de diretório

Boa tarde.

Tenho uma dúvida estou fazendo um programa que necessita ler o disco para catalogar, consegui montar a lógica, porém não estou conseguindo chegar a um acordo com o seguinte exemplo:

C:\ --> leio todos os arqs e diretórios.
C:\WINNT --> segundo nível. Até aqui eu consigo ler, agora o terceiro nível eu não estou coneguindo achar a solução.

Seria necessário algum método recursivo?

Abaixo o código:

/*Exemplo Passagem de parâmetro:
Find C:\Winnt\

/
import java.io.
;
public class Find {
public static void main(String[] a){
String FileType;
File f = new File(a[0].toString());
if(f.isDirectory()){
String[] files=f.list();
for(int g=0;g<files.length;g++)
{
//System.out.println(a[0] + files[g]+ “\”);
//System.exit(0);

            File DirTest = new File(a[0] + files[g]);
            if(DirTest.isDirectory()){
                FileType = "D";
            } else {
                FileType = "A";
            }
            System.out.println(files[g] + "  " + FileType);
		}
	} else {
	  System.out.println("Não é um diretório...");

	}


   }

}

Obrigado

olha, quando eu implementei isso eu fiz em C(acho que naum tenho mais o programa) e eu usei o conceito de árvores… (AVL)…

eu tenhu um e funciona muito bem se quiser me manda um email!

Blz.

Obrigado.

a logica eh mais ou menos isso aki a baixo!!

vc coloca um caminho no metodo A!!
primeiro o metodo verifica se o caminhu eh um arquivo ou diretorio ou NULL
se diretorio ele manda o caminhu dele para o mesmo metodo
se arquivo imprime nome

foi com essa ideia que fiz o meu programinha, se vc quiser eu tenhu ele no momento agora se quiser eh soh pedir!!!