Criar Lista/Array de Arquivos de um diretorio

4 respostas
C

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.

4 Respostas

F

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!

F

… 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:

C

Valeu Felipe!!!

Obrigado pelas dicas e pela mamata !! ehehehehe

Abraço !!

D

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

Criado 18 de outubro de 2006
Ultima resposta 15 de out. de 2009
Respostas 4
Participantes 3