File Search

7 respostas
israelwm

ae, achei um link [url]http://www.javaalmanac.com/egs/java.io/GetFiles.html?l=rel[/url] nos post antigos com o seguinte código, mas alguem sabe como usar? (É pra listar arquivos e diretorios de uma pasta)

File dir = new File("directoryName");
    
    String[] children = dir.list();
    if (children == null) {
        // Either dir does not exist or is not a directory
    } else {
        for (int i=0; i<children.length; i++) {
            // Get filename of file or directory
            String filename = children[i];
        }
    }
    
    // It is also possible to filter the list of returned files.
    // This example does not return any files that start with `.'.
    FilenameFilter filter = new FilenameFilter() {
        public boolean accept(File dir, String name) {
            return !name.startsWith(".");
        }
    };
    children = dir.list(filter);
    
    
    // The list of files can also be retrieved as File objects
    File[] files = dir.listFiles();
    
    // This filter only returns directories
    FileFilter fileFilter = new FileFilter() {
        public boolean accept(File file) {
            return file.isDirectory();
        }
    };
    files = dir.listFiles(fileFilter);
[url][/url]

7 Respostas

jgbt

coloca dentro de um metodo main de uma classe qualquer e substitui os parametros por valores validos…

qual a duvida??

[]'s

israelwm

já fiz isso po, naum apareçce nada

israelwm
public static void main(String[] args) {
        File dir = new File("C:\temp\"); //jah tentei assim C:\temp
        String[] children = dir.list();
        if (children == null) {
            System.out.println("Children não existe");
        } else {
            for (int i=0; i<children.length; i++) {
                // Get filename of file or directory
                String filename = children[i];
                System.out.println(filename);
            }
        }
        
        // It is also possible to filter the list of returned files.
        // This example does not return any files that start with `.'.
        FilenameFilter filter = new FilenameFilter() {
            public boolean accept(File dir, String name) {
                return !name.startsWith(".");
            }
        };
        children = dir.list(filter);
        
        
        
        // The list of files can also be retrieved as File objects
        File[] files = dir.listFiles();
        
        // This filter only returns directories
        FileFilter fileFilter = new FileFilter() {
            public boolean accept(File file) {
                return file.isDirectory();
            }
        };
        files = dir.listFiles(fileFilter);
        
        
   	
    }

só aparece: Children não existe

jgbt

aparecer aonde??? vc não ta dando System.out em nada!!!

vamos por partes.
se vc pegar esse pedaço do codigo:

File dir = new File("directoryName");
     
     String[] children = dir.list();
     if (children == null) {
         // Either dir does not exist or is not a directory
     } else {
         for (int i=0; i<children.length; i++) {
             // Get filename of file or directory
             String filename = children[i];
              System.out.println("Arquivo: "+filename)
         }
     }

e substituir “directoryName” por um diretorio da sua maq, vai printar os arquivo desse diretorio. repare que eu coloquei um System.out.

[]'s
>

israelwm

Sorry eu postei errado. ai vai:

public static void main(String[] args) {
         File dir = new File("C:\temp\"); //jah tentei assim C:\temp
         String[] children = dir.list();
         if (children == null) {
             System.out.println("Children não existe");
         } else {
             for (int i=0; i<children.length; i++) {
                 // Get filename of file or directory
                 String filename = children[i];
                 System.out.println(filename);
             }
         }
         
         // It is also possible to filter the list of returned files.
         // This example does not return any files that start with `.'.
         FilenameFilter filter = new FilenameFilter() {
             public boolean accept(File dir, String name) {
                 return !name.startsWith(".");
             }
         };
         children = dir.list(filter);
         
         
         
         // The list of files can also be retrieved as File objects
         File[] files = dir.listFiles();
         
         // This filter only returns directories
         FileFilter fileFilter = new FileFilter() {
             public boolean accept(File file) {
                 return file.isDirectory();
             }
         };
         files = dir.listFiles(fileFilter);
         
         
    	
     }

só aparece: Children não existe

jgbt

se vc der uma lida nos comentarios do codigo, vai entender o que cada bloco de codigo faz… comece pelo exemplo que eu coloquei.
da uma tentada…

[]'s

israelwm

Olá, só queria dizer que funcionou, o meu problema é q estava usando um diretório que criei no c:\temp\tmp e ele simplesmente naum está mais lá (acho q o temp é limpado cada vez q reinicio a máquina) ai naum funcionava.

Pra quem está acompanhando o tópico e precisa da mesma coisa, ai vai o código:
(ele apenas lista os arquivos e diretórios):

public SearchFiles(String diretorio) {
	    this.dir = new File("C:\temp\tmp\");
	    String[] children = dir.list();
	    
	    if (children == null) {
	        System.out.println("Children não existe");
	    } else {
                        //Lista todos os arquivos e diretorios
	        for (int i=0; i<children.length; i++) {
	            // Get filename of file or directory
	            String filename = children[i];
                            System.out.println(filename);

	        }
	    }
	    
	    // It is also possible to filter the list of returned files.
	    // This example does not return any files that start with `.'.
	    FilenameFilter filter = new FilenameFilter() {
	        public boolean accept(File dir, String name) {
	            return !name.startsWith(".");
	        }
	    };
	    children = dir.list(filter);
	    
	    // The list of files can also be retrieved as File objects
	    File[] files = dir.listFiles();
	    //Lista apenas os arquivos
                    for (int i = 0; i < files.length; i++) {
	    	if (files[i].isFile()) {
	    	    System.out.println(files[i].getName());
	    	}
	    	
	    	
	    }
	    
	    // This filter only returns directories
	    FileFilter fileFilter = new FileFilter() {
	        public boolean accept(File file) {
	            return file.isDirectory();
	        }
	    };
	    files = dir.listFiles(fileFilter);
	}
Criado 13 de abril de 2005
Ultima resposta 14 de abr. de 2005
Respostas 7
Participantes 2