ArrayList de array

pessoal to com um probleminha em recuperar um arraylist deem uma olhada no código

Função em uma classe para listar os arquivos de um diretório e retona

[code] public ArrayList listaDir(String diretorio){
Long tamanho = new Long(0);
long timestamp = 0;
String data = “”;
String md5 = “”;

	ArrayList matriz        = new ArrayList();  
	String[] arquivo        = new String[4];  
	SimpleDateFormat dtHora = new SimpleDateFormat("dd/MM/yyyy hh:mm");
	
	try{
		File dir   = new File(diretorio);
		File[] sub = dir.listFiles();
		for (int i = 0; i < sub.length; i++) {
			File f = sub[i];
			if (!f.isDirectory()) {
				tamanho = f.length()/1024;
				timestamp = f.lastModified();
				Date dtArq = new Date(timestamp);
				data = dtHora.format(dtArq).toString();
				md5  = getMD5Checksum(f.getAbsolutePath().toString());
				
				arquivo[0] = f.getName().toString();
				arquivo[1] = md5;
				arquivo[2] = tamanho.toString();
				arquivo[3] = data;
			}
			matriz.add(arquivo);
		}
	}catch (Exception e) {
	}
	return matriz;
}[/code]

função para exibir o os dados buscados pela função acima, detalhe para a linha 04

Funcoes func = new Funcoes(); ArrayList matriz = func.listaDir("C:\Documents and Settings\alexandre.rodrigues\Desktop\txt's"); for(int i = 0; i < matriz.size(); i++){ String[] arquivo = matriz.get(i); //como faço para jogar o item no array??? %> <tr> <td><span class="upper"><%= arquivo[0]%></span></td> <td nowrap="nowrap"><%= arquivo[1]%></td> <td nowrap="nowrap"><%= arquivo[2]%></td> <td><span class="upper"><%=arquivo[3] %></span></td> </tr> <% }

Alex,

Se você estiver usando Java 1.4 ou inferior, você deve fazer um cast manual na linha 4… algo assim

String[] arquivo = (String[]) matriz.get(i);

Agora se você está usando Java 1.5 ou superior, aconselho você dar um olhada em generics e for-each, vai facilitar bastante a manipulação de collections :wink:

Voce pode definir o ArrayList da seguinte maneira:

ArrayList<String[]> matriz        = new ArrayList<String[]>();

Dessa maneira não será necessário fazer cast do objeto retornado da posição do ArrayList.

E ai Jou!
Olha se a sua função listaDir estiver correta o problema pode ser só uma falta de cast…
Tenta colocar assim:

//antes....
// for(int i = 0; i < matriz.size(); i++){  
//         String[] arquivo = matriz.get(i); //como faço para jogar o item no array??? 
//
//depois...
for(int i = 0; i < matriz.size(); i++){  
         String[] arquivo = (String[])matriz.get(i);
//resto do codigo...

Espero que resolva!

Jair, vlw

Funcionou 100%

:wink: