2011-07-12 13 views

Respuesta

29

Sí. Utilice File.listFiles(FilenameFilter):

A modo de ejemplo:

File dir = new File("/path/to/directory"); 
File[] foundFiles = dir.listFiles(new FilenameFilter() { 
    public boolean accept(File dir, String name) { 
     return name.startsWith("Ab-"); 
    } 
}); 

for (File file : foundFiles) { 
    // Process file 
}  

Por supuesto, cambiar la condición en el accept() método para lo que necesite. Entonces tal vez name.startsWith("Ab-") && name.endsWith(".txt").

4

http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html#listFiles(java.io.FilenameFilter) uso de este método en la carpeta principal e implementa FilenameFilter como:

 
boolean accept(File dir, String name){ 
    return name.matches("AB-\n{2}.*") 
} 
+1

Wow, tienen enlaces a los documentos 1.4! – Qwerky

+0

http://download.oracle.com/javase/6/docs/api/java/io/File.html#listFiles(java.io.FilenameFilter) wow también funciona en java6 (escribí 'File java' en google y el 1.4 fue el primer resultado: P) – rascio

+0

Odio cómo Google a veces pone los 1.4 documentos más en los resultados que los 1.6 documentos. Google 'archivo javadoc 6' parece la mejor opción. – Qwerky

0

No hay una manera mágica. Debería enumerar todos los archivos en un directorio comprobando los nombres, y leer los archivos con el patrón. Y revise cada directorio recursivamente.

1

Cree un archivo java.io.File que represente su directorio, luego use el listFiles method que toma un FileNameFilter. Puede decir exactamente con qué patrón desea hacer coincidir, como name.startsWith ("Ab-").

1
File files[] = directory.listFiles(); 
for (File f : files) { 
    If(//filename matches what you want) 
    { 
     // do whatever you want with each File f 
    } 
} 

deben trabajar

Cuestiones relacionadas