Listando Estrutura de Arquivos - Exemplo

/****************************************************
 **  Este código é livre para qualquer finalidade  **
 ****************************************************/

/**
 * A classe FileList implementa um listador de arquivos de uma estrutura de diretórios
 *
 * @author Softech Network Informática S/C Ltda
 * @author Daniel Destro do Carmo
 * @version 1.0
 * @since 06/09/2002
 */

import java.io.*;

public class FileList {

  public FileList() {}

  /**
   * Esta função lista toda a estrutura de diretório a partir de um File. Se
   * o File for um arquivo exibe apenas o nome, se for um diretório ele exibe
   * a estrutura de arquivo abaixo dele, sendo ou não recursivo (subdiretórios).
   *
   * @param root File a ser listado, pode ser um arquivo ou diretório
   * @param recursive Se for true varre inclusive os subdiretórios 
   **/
  public void listFiles( File root, boolean recursive ) {
    if( root==null ) return;
    if( !root.exists() ) {
      System.out.println("File does not exist!");
    }

    if( root.isFile() ) {
      System.out.println( root.getAbsolutePath() );
      return;
    }
    System.out.println( root.getAbsolutePath() );

    File[] files = root.listFiles();
    if( files!=null ) {
      for(int i=0; i<files.length; i++) {
        if( files[i].isFile() ) {
          System.out.println( files[i].getAbsolutePath() );
        }

        if( recursive && files[i].isDirectory() ) {
          listFiles( files[i], recursive );
        }
      }
    }
  }

  public void listFiles( File root ) {
    listFiles( root, false );
  }

  public static void main( String[] args ) {
    try {
      FileList fl = new FileList();
      fl.listFiles( new File("C:\Temp"), true );
    } catch( Exception e ) {}
  }
}

A api do java.io.File possui funcoes de listagem que permitem usar filtros para retornar somente arquivos, por exemplo, com extensao (= que terminam em) “.mp3”.
Essa eh uma funcionalidade muito boa, e sera demonstrada no proximo tutorial de java.io.File que explicara TODA a api do mesmo.

Abracao

Guilherme