Listar arquivos de um diretorio

5 respostas
M

Ae, pessoal

Tô precisando filtrar arquivos .gif,.jpg e .bmp de um diretorio. Alguem saberia me informar como? Ja olhei nas APIs mas nao entendi muito bem.
Preciso incluisive do tratamento de erro caso nao exista imagens destes tipos ou diretorio esteja vazio.

Valeu....! Muito Obrigado..

:grin:

5 Respostas

F
File dir = new File("directoryName");
String arqs[] = dir.list();
if (arqs == null) {
 // n eh pasta ou n existe
 throws new Exception();
}
else {
 for (int i=0; i < arqs.length; i++) {
  // aki eh soh verificar se eh nas extensoes q vc quer
  if (arqs[i].endsWith(".gif") || arqs[i].endsWith(".jpg") || ...){
   ...
  }
 }
}
H

Da uma olhada neste exemplo

FileChooserDemo2

http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/index.html#FileChooserDemo2

Neste exemplo ele abri uma janela que só aparece imagens e o melhor de tudo ainda amostra a figura de ao lado (tamanho pequeno).

Mas se não quiser usar swing então faça como Felipe amostrou só lhe dou um conselho modularize na parte do if dentro do for e o else do primeiro if não é necessário, pois se entrar no if ele sairá do método ao lançar a exceção, dessa maneira seu codigo ficará mais fácil de modificar.

for (int i=0; i < arqs.length; i++) { 
  // aki eh soh verificar se eh nas extensoes q vc quer 
  if (ehImagem(arqs[i])){ 
   ... 
  }
}

flw.

M

Blz! Ja fiz isso e funcionou. Agora to precisando verificar se a pasta existe e esta vazia… Comparando array == null ele me fala se pasta existe ou nao eh uma pasta, estou certo? Mas e pra saber se ela esta vazia?

Valeu... :razz:
H
File file = new File("diretorio");
file.exists(); // verifica se existe e retorna um boolean
file.isDirectory(); // verifica se é um diretorio (pode ser um arquivo)
// pra saber se está vazio eu não sei mas da uma olhada na classe File

flw.

M

Pessoal!

Pra saber se a pasta está vazia eu comparei com zero o length do array que recebe o retorno do list(), ja que se a pasta esta vazia o list() retorna um array vazio. Assim:

File diretorio = new File(“pathname”);

String[] vetArquivos = diretorio.list();

if (vetArquivos.length != 0) {

(...)

}

Valeu pela ajuda… :grin:

Criado 24 de agosto de 2004
Ultima resposta 26 de ago. de 2004
Respostas 5
Participantes 3