Classe File - Como usar o método listFiles(Filter filter)?

Olá senhores, bom dia,
alguém poderia me ajudar a implementar no método abaixo o uso do listFiles(Filter filter)?

private static String descobreNomeDoEpubFull(){ String nomeDoEpub = null; File caminhoDoDiretorioC = new File("c:"); File[] recebeConteudoDoDiretiorioC = caminhoDoDiretorioC.listFiles(); for (int i = 0; i < recebeConteudoDoDiretiorioC.length; i++) { if (recebeConteudoDoDiretiorioC[i].getName().endsWith(".epub")) { nomeDoEpub = recebeConteudoDoDiretiorioC[i].getName(); } } return nomeDoEpub; }

Pode fazer com foreach, fica mais fácil e usar um método que retorna um array de string e não de files.

	private static String descobreNomeDoEpubFull(){
		String nomeDoEpub = null;
		File caminhoDoDiretorioC = new File("c:\");
		for(String f : caminhoDoDiretorioC.list()) {
			if (f.endsWith(".epub") || f.endsWith(".EPUB")) {
                nomeDoEpub = f;
			}
		}
		return nomeDoEpub; 
	}

Gostei do exemplo…

E você saberia usar o Filter também?

[code] private static String descobreNomeDoEpubFull(){
String nomeDoEpub = null;
File caminhoDoDiretorioC = new File(“c:”);

            FilenameFilter filter = new FilenameFilter() {
                  public boolean accept(File dir, String name) {
                      return name.endsWith(".epub");
                  }
            };

	for(String f : caminhoDoDiretorioC.list(filter)) {
                  nomeDoEpub = f;
	}
	return nomeDoEpub;
}[/code]

segue!

manu trooca esse avatar …parece um ratooooooooooooooooooooooooo

coloka outro …pf

public static File[] getTxtFiles(File dir) { // selecionar arquivos .txt File[] files = dir.listFiles(new FilenameFilter() { public boolean accept(File d, String name) { return name.toLowerCase().endsWith(".txt"); } }); // ordenar usando data/tempo de modificacäo Arrays.sort(files, new Comparator<File>() { public int compare(File o1, File o2) { long l1 = o1.lastModified(); long l2 = o2.lastModified(); if (l1 < l2) return -1; if (l1 > l2) return 1; return 0; } }); } e para usar algo como: public static void main(String[] args) { File[] files = getTxtFiles(new File("c:/teste")); for (File file : files) { // tratamento System.out.printf("%tF %<tT %s\n",file.lastModified(), file); // exemplo } }

ou

[code]import java.io.;
import java.util.
;
class teste
{
public static void main(String…args)
{
MeuFile mf = new MeuFile("./bbb");
File[] files = mf.listFiles();
for ( int i = 0 ; i < files.length ; i++ )
{
System.out.println(files[i].getName());
}
}
}

class MeuFile extends File
{
public MeuFile(String f)
{
super(f);
}

public File[] listFiles()
{
File[] fs = super.listFiles();

  Comparator<File> descendingOnModificationDate =   
  new Comparator<File>() {   
     public int compare(File f1, File f2)    
     {   
        long diff = f1.lastModified() - f2.lastModified();   
        int returnValue;   
        if (diff < 0L) {   
           returnValue = -1;   
        } else if (diff > 0L) {   
           returnValue = +1;   
        } else {   
           assert diff == 0L;   
           returnValue = 0;   
        }   
        return -returnValue; // +returnValue for ascending order   
     }   
  };   

  Arrays.sort(fs,descendingOnModificationDate);   
     
  return fs;   

}
}[/code]

deus mi livre

abrx