Localizar arquivos dentro de um diretorio

Olá pessoal!

Estou com um probleminha e gostaria de ajuda.
Seguinte:
Preciso localizar todos os arquivos com uma determinada extensão dentro de uma determinada pasta e gerar um “txt” com essa lista resultante, ou seja, com o nome dos arquivos.
Alguém poderia dá um help?

Fiquem em paz!

Vê se esse serve… ele lista todos os arquivos com extensão txt no diretório "c:" .

            // arquivo onde será gravada a lista de arquivos do diretório
            FileWriter arquivos = new FileWriter(new File("arquivos.txt"));

            // diretório que será listado.
            File baseFolder = new File("c:");

            // obtem a lista de arquivos
            File[] files = baseFolder.listFiles();
            for (int i = 0; i < files.length; i++) {
                File file = files[i];
                if (file.getPath().endsWith(".txt")) {
                    String name = file.getName();
                    arquivos.write(name + "\n");
                    arquivos.flush();
                }
            }

:wink:

[code]import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Set;
import java.util.TreeSet;

public class CopyFiles {

private static final File FICH_IN = new File("C:\Documents and Settings\Brasil\
private static final File FICH_FI = new File("C:\Documents and Settings\Pasta.txt");


static void extractUniqueTitles() throws IOException{
	File folder = new File(FICH_IN.getPath());
	String [] fileName = folder.list();
	ArrayList<String> uniqueTitles = new ArrayList<String>();
	int count = 0;
	if(FICH_FI.exists()){
		String [] listLines = IO.load(FICH_FI.getAbsolutePath()).split("\n");
		uniqueTitles.addAll(Arrays.asList(listLines));
		Collections.sort(uniqueTitles);
	}
	
	for(int i = 0; i < fileName.length; i++){
		System.out.println("Processing " + fileName[i]);
		String inputFn = FICH_IN.getPath() + "\" + fileName[i];
		
		String [] titles = IO.load(inputFn).split("\r?\n\r?");
		for(int j = 0; j < titles.length; j++){
			int idx = Collections.binarySearch(uniqueTitles, titles[j]);
			if(idx < 0){
				uniqueTitles.add(-1 - idx, titles[j]);
				count++;
			}
		}
	}
	System.out.println("New titles added " + count);
	
	FileOutputStream fous = new FileOutputStream(FICH_FI.getAbsolutePath());
	OutputStreamWriter os = new OutputStreamWriter(fous, "utf8");
	for(String title : uniqueTitles)
		os.write(title + "\n");
	os.flush();
	fous.flush();
	fous.close();
}

}	
public static void main(String[] args) throws IOException {
	
	extractUniqueTitles();
	
	
	
}   

}
[/code]
Será isto que precisas?

O povo tem mania de colocar variáveis ou constantes, com letras maiúscula com alusão o C/C++. Isso é ridículo.

Ok pessoal!
Problema resolvido.
Valeu pela força.

Como assim? Esse padrão de nomenclatura é JavaBean, adotado pela sun, mas nem só por isso é obrigado a adota-la.

eu costumo usar aquela classe FileFilter…

File dir = new File("/home/foo"); dir.list(new FileFilter(){ //implementa FileFilter });
dae ele retorna um array de File só com os arquivos q passarem nesse filtro.