Go through directories with recursive in JAVA [closed]

-1

I'm doing a job for college on how to go through directories with recursive in java and so far I have this code here:

    package Control;

import java.awt.Desktop;
import java.io.*;

public class PercorreDir {

    private String pastas = "";
    StringBuffer buffer = new StringBuffer();

    public String percorre(String caminho, String espaço){

        File documentos = new File(caminho);

        for( File files : documentos.listFiles()){
            if(files.isDirectory()) {

                buffer.append(files + espaço);
                percorre(caminho, espaço);
            }
        }

        return pastas;

    }
}

What I want to know is how do I go through the sub-folders as well. Thank you.

    
asked by anonymous 03.12.2015 / 12:54

1 answer

1

Hello, I found a code that could be didactic for your learning in the matter of recursion. The code below is for searching for a file and it searches all folders / sub-folders.

   package com.mkyong;

    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;

    public class ProcurarArquivo {

      private String nomeParaBuscar;
      private List<String> resultado = new ArrayList<String>();

      public String getNomeDoArquivoParaBuscar() {
        return nomeParaBuscar;
      }

      public void setNomeDoArquivoParaBuscar(String nomeParaBuscar) {
        this.nomeParaBuscar = nomeParaBuscar;
      }

      public List<String> getResultado() {
        return resultado;
      }

      public static void main(String[] args) {

        ProcurarArquivo procurarArquivo = new ProcurarArquivo();

        //tente diferentes diretorios.
        procurarArquivo.procurarPasta(new File("/var/www/html"), "post.php");

        int count = procurarArquivo.getResultado().size();
        if(count ==0){
            System.out.println("\nNão foi encontrado!");
        }else{
            System.out.println("\nencontrado " + count + " resultados!\n");
            for (String bateu : procurarArquivo.getResultado()){
            System.out.println("encontrado : " + bateu);
            }
        }
      }

      public void procurarPasta(File diretorio, String nomeParaBuscar) {

        setNomeDoArquivoParaBuscar(nomeParaBuscar);

        if (diretorio.isDirectory()) {
            procurar(diretorio);
        } else {
            System.out.println(diretorio.getAbsoluteFile() + " não é um diretório!");
        }

      }

      private void procurar(File arquivo) {

        if (arquivo.isDirectory()) {
          System.out.println("procurando pasta ... " + arquivo.getAbsoluteFile());

            //você tem permissão para ler?
            if (arquivo.canRead()) {
            for (File temp : arquivo.listFiles()) {
                if (temp.isDirectory()) {
                procurar(temp);
                } else {
                if (getNomeDoArquivoParaBuscar().equals(temp.getName().toLowerCase())) {            
                    resultado.add(temp.getAbsoluteFile().toString());
                }

            }
            }

         } else {
            System.out.println(arquivo.getAbsoluteFile() + "Permissão negada");
         }
          }

      }

    }
    
03.12.2015 / 13:03