Listar arquivos de um diretório

2 respostas
J

Eu tenho a classe abaixo o objetivo dela é listar todos os arquivos de um diretório com terminação .doc e esta funcionando

import java.io.*;

public class Arquivos{
	public static void main(String[] args){
		new Arquivos().listarArquivos("c:/cts","*.doc");
	}
	public void listarArquivos(String dir,String ext){
		File caminho = new File(dir);
		String[] listaArquivos = caminho.list();
		ext = ext.substring(ext.length()-3,ext.length());
		if(ext.equals("*.*")){
			for(int i=0;i<listaArquivos.length;i++){
				System.out.println(listaArquivos[i]);
			}
		}
		else
		for(int i=0;i<listaArquivos.length;i++){
			if(listaArquivos[i].endsWith(ext))
				System.out.println(listaArquivos[i]);
		}
	}
mas eu quero trazer todos os arquivos que iniciam por TESTE a linha de comando ficará assim 


new Arquivos().listarArquivos("c:/cts","TESTE*.*");


e acho que teria de trocar o comando 

if(listaArquivos[i].endsWith(ext))

por 

if(listaArquivos[i].startsWith(ext))


MAS NÃO FUNCIONA

2 Respostas

J

percebo que se tirar a linha de comando:

import java.io.*;

public class Arquivos{
	public static void main(String[] args){
		new Arquivos().listarArquivos("c:/cts","REGL");
	}
	public void listarArquivos(String dir,String ext){
		File caminho = new File(dir);
		String[] listaArquivos = caminho.list();
		//ext = ext.substring(ext.length()-3,ext.length());
		if(ext.equals("*.*")){
			for(int i=0;i<listaArquivos.length;i++){
				System.out.println(listaArquivos[i]);
			}
		}
		else
		for(int i=0;i<listaArquivos.length;i++){
			if(listaArquivos[i].startsWith(ext))
				System.out.println(listaArquivos[i]);
		}
	}	
     
}

vai funcionar agora tenho um outro problema caso você podem me ajudar o metodo terá que retornar uma String[] com o nome dos arquivo e terá que funcionar para

endsWith
startsWith

ou seja posso chamar
// todos os arquivos que começam com REGL
listarArquivos(“c:/cts”,“REGL”);

//todos os arquivos que terminam com .doc
listarArquivos(“c:/cts”,"*.doc");

_fs

A classe file tem um método list(), que retorna um array de strings com os nomes de todos os arquivos dentro da pasta.

A partir disso um laço básico e saber regexp resolve seu problema :smiley:

Criado 20 de outubro de 2004
Ultima resposta 20 de out. de 2004
Respostas 2
Participantes 2