Listar arquivos

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


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

Obrigada…

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

???

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.

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

Sem jakarta commons IO:

[code]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);[/code]

Com jakarta commons IO:

[code]File dir = new File(“C:/minha_pasta”);

FileFilter filtro = new WildcardFileFilter(“conta*”);

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

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*");

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.