Listar arquivos

6 respostas
A

Pessoal… como listar arquivos de um diretorio iniciados por exemplo por conta??

Obs: eu consegui fazer so que tenho que passar o nome inteiro do arquivo inclusive com a extensao!!

Obrigada

6 Respostas

C
if(nomeDoArquivo.startsWith("conta") { }
A

Obrigada…

Mas se eu quiser que ele busque por todos os arquivos que contenha a palavra “conta”

???

C

No momento não pensei em outra solução, mas acho que você terá que abrir cada arquivo da da sua lista e pesquisar por essa String.

J

Não sei se entendi direito, mas talvez isso ajude:

Sem jakarta commons IO:

File dir = new File("C:/minha_pasta");

FileFilter filtro = new FileFilter(){
   public boolean accept(File arq) {
      return arq.getName().startWith("conta")
   }
}

File[] arquivos = dir.listFiles(filtro);

Com jakarta commons IO:

File dir = new File("C:/minha_pasta");

FileFilter filtro = new WildcardFileFilter("conta*");

File[] arquivos = dir.listFiles(filtro);
http://commons.apache.org/io
J

Sobre a busca por arquivos que contenham “conta”, poderia ser assim:

public boolean accept(File arq) { return arq.getName().matches(".*conta.*"); }

ou:

new WildcardFileFilter("*conta*");
D

Tente isso:

public class execHostCmd { public static void execute (String command) throws java.io.IOException { String osName = System.getProperty("os.name"); command = "cmd /c " + command; Runtime rt = java.lang.Runtime.getRuntime(); rt.exec(command); } }

O método acima executa um comando do windows.
O comando do windows que varre uma pasta lendo os nomes dos arquios e salvando-os em um arquivo .txt é :

dir /b C:\minha_pasta\conta* > C:\Dir\fileList.txt

O código acima varre a pasta C:\Minha_pasta e salva os nomes dos arquivos que começam com conta no arquivo fileList.txt.

Então basta chamar o método JAVA acima passando como parametro esse comando do windows e depois varrer o arquivo fileList.txt pegando os nomes de todos os arquivos.

Só tome cuidado que ao executar o comando windows, o .txt demora um pouco para ser gerado, cerca de 1 segundo. Para fugir de problemas com isso, você poderia usar uma thread para esperar 1 seg após a execução do comando.

Essa é uma maneira de fazer, mas com certeza existem outras.
Espero ter ajudado.

Criado 19 de agosto de 2008
Ultima resposta 20 de ago. de 2008
Respostas 6
Participantes 4