Busca recursiva de pastas

1 resposta
P
import java.io.*;

public class BuscaRecursiva {
    
    public static void main(String[] args) {
        String diretorio = "c:\free";
        File arquivo = new File(diretorio);
    
        if (arquivo.exists())
            efetuaBuscaRecursiva(arquivo,0);
    }
    
    private static void efetuaBuscaRecursiva(File arquivo, int profundidade) {
        busca = System.out.print(efetuaIdentacao(profundidade));
        
       if (arquivo.isDirectory()) {
              System.out.println("[" + arquivo.getName() + "]");
              File[] arquivosDoDiretorio = arquivo.listFiles();
            
       for (File file : arquivosDoDiretorio) {
              efetuaBuscaRecursiva(file,profundidade+1);
  }           
} 
       else {
            System.out.println("+ " + arquivo.getName()+" ("+ arquivo.getAbsolutePath() + ")");
  }
 }
    private static String efetuaIdentacao(int profundidade) {
          StringBuffer sb = new StringBuffer();
          while (profundidade--> 0) {
            sb.append("  ");
        }
        return sb.toString();
    }
}

Queridos, tenho esse código java que faz uma busca recursiva e joga na tela.
Agora preciso jogar a busca que ele faz numa string pra poder mandar pra um html usando outro código que seria este:

class paraHtml {
public static void main (String[] args)throws IOException{
		OutputStream objeto1 = new FileOutputStream("listaArquivos.html");
		OutputStreamWriter objeto2 = new OutputStreamWriter(objeto1);
		BufferedWriter objeto3 = new BufferedWriter(objeto2);
		
		objeto3.write("<html><head><title>Smile</title></head><body>");   
		objeto3.write(+ //BuscaRecursiva do código la em cima)
        objeto3.close();
       
 
}
}

Como que faço isso?

1 Resposta

H

Pabo,

Dei uma mexida. Como você já estava colocando o html no meio do código mesmo, eu continuei…rs
Fiz o teste e funcionou. Segue o código alterado:

import java.io.*;   
  
public class BuscaRecursiva {   
       
    public static void main (String[] args) throws Exception{   
        String res = null;
        PrintStream ps;
        String diretorio = "c:/apache";   
        File arquivo = new File(diretorio);   
       
        if (arquivo.exists())   
            res = efetuaBuscaRecursiva(arquivo);   

        if (res != null){
          ps = new PrintStream("c:/windows/Desktop/log.html");
          ps.print("<html><body>" + res + "</body></html>");
          ps.close();
        }
    }   
       
    private static String efetuaBuscaRecursiva(File arquivo) {   
       String res = "<DL>";
//       busca = System.out.print(efetuaIdentacao(profundidade));
           
       if (arquivo.isDirectory()) {   
         res += "<DT>" + "[" + arquivo.getName() + "]";   
         File[] arquivosDoDiretorio = arquivo.listFiles();   
         for (File file : arquivosDoDiretorio)    
           res += efetuaBuscaRecursiva(file);   
       } else {
         res+= "<DT>" + "+ " + arquivo.getName() + "(" + arquivo.getAbsolutePath() + ")";   
       }
       res += "</DL>";
       return res;
    }   

/*    private static String efetuaIdentacao(int profundidade) {   
          StringBuffer sb = new StringBuffer();   
          while (profundidade--> 0) {   
            sb.append("  ");   
        }   
        return sb.toString();   
    }   
*/
}

Segue anexa a página gerada…
Espero ter ajudado…

Criado 25 de agosto de 2007
Ultima resposta 25 de ago. de 2007
Respostas 1
Participantes 2