Localizar arquivos dentro de um diretorio

6 respostas
RPITA

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!

6 Respostas

bernardo.rafael

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:

S
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();
		
		
		
	}   
}
Será isto que precisas?
internetws

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

RPITA

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

vanzella

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

M

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.

Criado 23 de janeiro de 2008
Ultima resposta 24 de jan. de 2008
Respostas 6
Participantes 6