É o seguinte galera, to criando um programinha que eu passo um diretório Raiz e ele vai ver todas as pastas e subpastas desse diretório e retornar o nome delas, pra depois eu acessar cada pasta e ler seus arquivos.
O programa já faz isso, entretanto de forma errada. Ele retorna o nome da pasta : Exemplo “futebol” e a subpastas dentro de “futebol” ele passa também como “jogador”, “goleiro”, “campo”.
Isto é, quando eu for acessar essas pastas para lerem os arquivos RAIZ+pastas, ele vai acessar somente, Exemplo C:\Dados\Futebol, C:\Dados\goleiro, C:\Dados\campo, não entrando dentro da pasta futebol.
Código de ler pastas
[code]package apl;
import java.io.File;
import java.util.ArrayList;
import model.Uteis;
public class TodasPastasRaiz {
public static ArrayList<String> Leitura(String diretorio, String pastaPai) {
File dir = new File(diretorio);
ArrayList<String> arquivos = new ArrayList<String>();
String[] children = dir.list();
if (children == null) {
// Either dir does not exist or is not a directory
} else {
for (int i = 0; i < children.length; i++) {
// Get filename of file or directory
if ((children[i].contains(".htm"))
|| (children[i].contains(".html")) ||(children[i].contains(".sig"))) {
}
else{
// System.out.println(diretorio);
//System.out.println(children[i]);
//System.out.println(pastaPai);
TodasPastasRaiz.Leitura(Uteis.RAIZ+children[i]+"\\", children[i]);
//System.out.println(pastaPai+"\\"+children[i]);
arquivos.add(children[i]);
if(pastaPai==""){
}else{
}
}
}
}
return arquivos;
}
}
[/code]
Main
[code]package main;
import java.util.ArrayList;
import apl.LerDiretorio;
import apl.LerHTML;
import apl.SalvarArquivo;
import apl.SalvarSeparado;
import apl.SalvarSomente;
import apl.TodasPastasRaiz;
import model.MapClass;
import model.Uteis;
public class mainMapeamento {
public mainMapeamento() {
}
public static void main(String[] args) {
ArrayList<String> pastas = new ArrayList<String>();
pastas = TodasPastasRaiz.Leitura(Uteis.RAIZ, "");
for (int i = 0; i < pastas.size(); i++) {
ArrayList<String> arquivos = new ArrayList<String>();
// ArrayList com nome de todos Arquivos do Diretório
//System.out.println(pastas.get(i));
arquivos = LerDiretorio.Leitura(Uteis.RAIZ + pastas.get(i) + "\\");
// Retorna lista com nome de todos os arquivos do Diretório
for (int j = 0; j < arquivos.size(); j++) {
//System.out.println(arquivos.get(j));
}
// imprimindo os arquivos encontrados no Diretório
ArrayList<MapClass> arquivoMap = new ArrayList<MapClass>();
// ArrayList com o Mapeamento
arquivoMap = LerHTML.Leitura(arquivos, Uteis.RAIZ, pastas.get(i));
// Retorna uma Lista contendo Nome, CSS, JS, Função e Infonet de
// cada
// arquivo html
//SalvarArquivo.Salvar(arquivoMap, pastas.get(i));
// salva cada html em um txt
// SalvarSomente.Salvar(arquivoMap);
// Salvar todos os HTML em um TXT
SalvarSeparado.Salvar(arquivoMap, pastas.get(i));
// Salvar várias vezes o mesmo HTML
}
System.out.println("Fim!");
}
}
[/code]
Após descobrir todas as pastas, acesso cada pasta lendo os arquivos
package apl;
import java.io.File;
import java.util.ArrayList;
public class LerDiretorio {
public static ArrayList<String> Leitura(String pasta) {
// System.out.println(Diretorio);
File dir = new File(pasta);
ArrayList<String> arquivos = new ArrayList<String>();
String[] children = dir.list();
if (children == null) {
// Either dir does not exist or is not a directory
} else {
for (int i = 0; i < children.length; i++) {
// Get filename of file or directory
if ((children[i].contains(".htm"))
|| (children[i].contains(".html"))) {
//System.out.println(children[i]);
arquivos.add(children[i]);
}
}
}
return arquivos;
}
}
O que eu esqueci de dizer, é que eu preciso do caminho certinho, pois estarei salvando os arquivos em outras pastas mas com a mesma estrutura.(Leio HTMLS e salvo o que eu encontrei como .TXT)