Erro ao procurar arquivos no hd

1 resposta
G

Olá, preciso fazer uma busca de arquivos no hd pelo nome(ou parte dele).
A classe de procura:

public class Buscar {

    
    public ArrayList buscarArquivoPorNome(String palavra, File caminhoInicial) {
        ArrayList lista = new ArrayList();
        try {
            File arquivo = (caminhoInicial);
            lista = buscar(arquivo, palavra, lista);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Caminho Inválido");
        }
        return lista;
    }
    
  
    public ArrayList buscar(File arquivo, String palavra, ArrayList lista) {
        if (arquivo.isDirectory()) {
            File[] subPastas = arquivo.listFiles();
            for (int i = 0; i < subPastas.length; i++) {
                lista = buscar(subPastas[i], palavra, lista);
                if (arquivo.getName().equalsIgnoreCase(palavra)) {
                    lista.add(arquivo.getAbsolutePath());
                } else if (arquivo.getName().indexOf(palavra) > -1) {
                    lista.add(arquivo.getAbsolutePath());
                }
            }
        } else if (arquivo.getName().equalsIgnoreCase(palavra)) {
            lista.add(arquivo.getAbsolutePath());
        } else if (arquivo.getName().indexOf(palavra) > -1) {
            lista.add(arquivo.getAbsolutePath());
        }
        return lista;
    }
    
}

A classe onde o usuario digitaria o nome do arquivo em um jTextField e a partir de um botao executaria a procura, segue o actionPerformed do botao:

String nome = txtNome.getText();
String caminho = "c:\";
 Buscar b = new Buscar();
          ArrayList res = b.buscarArquivoPorNome(nome, caminho);
System.out.println("" + res);

ele busca certinho e tal, mas só no diretorio c:, só q ele nao pesquisa nos subdiretorios, ex: meus documentos, teria jeito dele procurar e, todo os diretorios do sistema?
vlw

1 Resposta

E

Tem. Procure aqui no GUJ por “listar um diretório recursivamente”.

Criado 11 de novembro de 2010
Ultima resposta 11 de nov. de 2010
Respostas 1
Participantes 2