Listar ficheiros dentro da pasta

2 respostas
L

Boas pessoal,

Tenho uma directoria com a seguinte estrutura : C:\FicheirosRecebidos\ e destro desta pasta tenho varios ficheiros no formato .TXT

Gostaria de criar um metodo que me faça um System.out.print(); todos os ficheiros .TXT que estao contidos na pasta ou seja me listasse todos os ficheiros que estao dentro desta directoria. Mas gostaria que ele me listasse o nome destes ficheiros.

Obrigado desde ja !

2 Respostas

T
import java.io.*;
import java.util.*;

class ListagemRecursiva {
    
    public void listar (File dir, List<File> arquivos) {
        if (dir.isDirectory()) {
            File[] sub = dir.listFiles();
            for (File f : sub) {
                if (f.isDirectory()) {
                    listar (f, arquivos);
                } else {
                    arquivos.add (f);
                }
            }
        }
    }
    

    public static void main (String[] args) {
        ListagemRecursiva lr = new ListagemRecursiva();
        List<File> arquivos = new ArrayList<File>();
        lr.listar (new File (args[0]), arquivos);
        // Imprimindo todos, sem exceção
        for (File f : arquivos) {
            System.out.println (f);
        }
        // Imprimindo apenas os arquivos .txt
        for (File f : arquivos) {
            if (f.isFile() && f.getName().toLowerCase().endsWith (".txt")) {
         	System.out.println (f);        
            }
        }
    }
}
dmandrak
thingol:
import java.io.*;
import java.util.*;

class ListagemRecursiva {
    
    public void listar (File dir, List<File> arquivos) {
        if (dir.isDirectory()) {
            File[] sub = dir.listFiles();
            for (File f : sub) {
                if (f.isDirectory()) {
                    listar (f, arquivos);
                } else {
                    arquivos.add (f);
                }
            }
        }
    }
    

    public static void main (String[] args) {
        ListagemRecursiva lr = new ListagemRecursiva();
        List<File> arquivos = new ArrayList<File>();
        lr.listar (new File (args[0]), arquivos);
        // Imprimindo todos, sem exceção
        for (File f : arquivos) {
            System.out.println (f);
        }
        // Imprimindo apenas os arquivos .txt
        for (File f : arquivos) {
            if (f.isFile() && f.getName().toLowerCase().endsWith (".txt")) {
         	System.out.println (f);        
            }
        }
    }
}

Thingol ruleia :!:

ps: Com a devida permissão, estou copiando este código :wink:

Criado 4 de setembro de 2007
Ultima resposta 22 de out. de 2008
Respostas 2
Participantes 3