Listar .TXT's de um diretório

6 respostas
G

Estou tentando listar apenas arquivos .txt de um diretório e que na hora de imprimir, não queria que mostrasse a extensão(formato) do arquivo, apenas o nome do do arquivo. Mas não estou conseguindo.

já fucei o fórum todo, mas só consegui chegar até esse codígo abaixo.
ele lista todos os arquivos do diretório, independente do formato e imprime a extensão(ex: dados.txt)

public void listagem (){

    File Arquivo = new File("./");
         File[] Arq = Arquivo.listFiles();

         if(Arq != null){
             int length = Arq.length;

            for(int i = 0; i < length; ++i){
                File FileV = Arq[i];
                String Arq2 = FileV.getName();
                 if(FileV.isFile()){
                     System.out.println(FileV.getName());
                }
            }
}
   }
}

aguardo alguma ajuda
obrigado

6 Respostas

M

Olá, de uma pesquisada na classe FileFilter. Ela te ajudará na hora de listar os arquivos .txt

jurunaloco

file filter …

ou fazer uma gambi orrenda :slight_smile: porem que funciona hehe

if nomeArquivo.substring(nomeArquivo.lenght - 3, nomeArquivo.lenght).equals(txt);

System.out.println(nomeArquivo.replaceAll(".txt",""))
ou System.out.println(nomeArquivo.substring(0, nomeArquivo.lenght - 4));

finotti
public List<File> listarArquivos(File diretorio, final String extensao) {

		List lista = new ArrayList<File>();

		if ((diretorio.exists()) && (diretorio.isDirectory())) {
			File[] arquivos = diretorio.listFiles(new FilenameFilter() {
				public boolean accept(File diretorio, String nomeArquivo) {
					return nomeArquivo.toLowerCase().endsWith("." + extensao);
				}
			});
			if (arquivos != null) {
				for (int i = 0; i < arquivos.length; i++) {
					lista.add(arquivos[i]);
				}
			}
		}
		return lista;
	}
G

Agradeço a ajuda de vcs.

Já estou coseguindo listar apenas os arquivos .txt.
agora falta tirar o ".txt" na hora de imprimir o nome do arquivo.
tentei o replace e o split mas não estou conseguindo

public void listagem (){
File diretorio = new File("./");

FileFilter Filtro = new FileFilter() {
public boolean accept(File b){
              return b.getName().endsWith(".txt");
         }};


  File[] arquivos = diretorio.listFiles(Filtro);

        if(arquivos != null){
            int length = arquivos.length;

            for(int i = 0; i < length; ++i){
               System.out.println(arquivos[i].getName());
            }
        }
   }
}

o código está assim por enquanto

G

Opa.
consegui

System.out.println(arquivos[i].getName().replace(".txt", ""));

obrigado a todos

thundercas

Utilize o método:

int i = texto.indexOf(".");

para recuperar a posição do ponto e, em seguida:

String x = texto.subString(0, i);

Não testei, mas deve funcionar… Abraços…

Criado 27 de novembro de 2009
Ultima resposta 27 de nov. de 2009
Respostas 6
Participantes 5