Criar Lista/Array de Arquivos de um diretorio

Olá pessoal !

Como fazer em Java para criar um lista ou um array contendo todos os arquivos (com uma determinada extensão ou não) de um diretorio qualquer ?

Preciso executar uma operaçao sobre todos os arquivos de um diretorio por exemplo :

m.read (“file:arquivo.txt”)

Só para ilustrar, no Linux eu faria assim para saber o tamanho de cada um dos arquivos “.tar.gz” do diretorio “dados”:

for arquivos in ls dados/*.txt; do echo du -h -s $arquivo; done

Existe algo parecido ou que faça o mesmo trabalho em JAVA ?

Grato desde já.

Cleiton.

cperes_reis,

Lembre-se: Google is your friend!

Uma pesquisa por “java list all files in directory” me trouxe o link:

http://javaalmanac.com/egs/java.io/GetFiles.html

Que mostra o que você quer fazer com requintes de crueldade, como listar em subdiretórios também :D.

Espero que te ajude.

Abraços!

… agora, se vc quer mamata, vai um exemplozinho que eu fiz abaixo. Para fazer a “operação” que vc quer com o arquivo, mude o método dumpFiles de acordo com o que você quer…

package com.testing.file;

import java.io.File;
import java.io.FileFilter;

public class ListFilesTest {
	public static void main(String[] args) {
		dumpFiles(getAllFiles("c:/temp", null));
		dumpFiles(getAllFiles("c:/temp", ".zip"));
		dumpFiles(getAllFiles("c:/temp", ".tar.gz"));
	}
	
	private static void dumpFiles(File[] files) {
		for (File file : files) {
			System.out.println(file);
		}
	}

	private static File[] getAllFiles(String path, final String extension) {
		File dir = new File(path);

		// filtro pela extensão procurada
		FileFilter filter = null;
		
		if (extension != null) {
			filter = new FileFilter() {
				public boolean accept(File pathname) {
					return pathname.getAbsolutePath().endsWith(extension);
				}
			};
		}

		// lista os arquivos que correspondem ao match
		return dir.listFiles(filter);
	}
}

:smiley:

Valeu Felipe!!!

Obrigado pelas dicas e pela mamata !! ehehehehe

Abraço !!

Olá preciso de uma ajuda. Na vdd preciso incluir nesse codigo abaixo de uma calculadora duas listas, que passe dados de uma para outra através do clique de um botão: tipo --> passa da lista da esquerda pra direita, e <-- passa da lista da direita pra esquerda

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

/**
*
*/

/**

  • @author Daiana Dias

*/
[/code]
public class MinhaCalculadora implements ActionListener {

JFrame janela = new JFrame();
JTextField tfValor1 = new JTextField();
JTextField tfValor2 = new JTextField();
JButton btSoma = new JButton("+");
JButton btSubtracao = new JButton("-");
JLabel resultado = new JLabel("");

[code]
public void calcular() {
janela.setLayout(new GridLayout(3, 2));
janela.setTitle(“Calculo”);
janela.setSize(300, 100);
janela.add(tfValor1);
janela.add(tfValor2);
janela.add(btSoma);
janela.add(btSubtracao);
janela.add(resultado);
btSoma.addActionListener(this);
btSubtracao.addActionListener(this);
janela.setVisible(true);
}

[code]
public static void main(String[] args) {
new MinhaCalculadora().calcular();
}

[code]
public void actionPerformed(ActionEvent e) {
int valor1 = Integer.parseInt(tfValor1.getText());
int valor2 = Integer.parseInt(tfValor2.getText());

if (e.getSource() == btSoma) {
resultado.setText(“Soma dos valores:” + (valor1 + valor2));
}
else if (e.getSource() == btSubtracao) {
resultado.setText(“Subtração dos valores:” + (valor1 - valor2));
}
}
}

vlww