2010-05-22 15 views
5

Estoy trabajando en una pequeña aplicación en Java que toma una estructura de directorio y cambia el nombre de los archivos según un determinado formato, después de analizar el nombre original.Operaciones de archivos en Java

¿Cuál es la mejor clase/metodología de Java a utilizar para facilitar estas operaciones de archivos?

Editar: la cuestión es sólo con respecto a la parte de las operaciones de archivo, me dieron el "conseguir el nombre con formato" abajo :)

Edición 2: Además, ¿cómo listar los archivos de forma recursiva?

Respuesta

3

Uso java.io.File


Listado de todos los archivos en un directorio

http://www.javaprogrammingforums.com/java-code-snippets-tutorials/3-how-list-all-files-directory.html

File folder = new File(path); 
File[] listOfFiles = folder.listFiles(); 
for (int i = 0; i < listOfFiles.length; i++) { 
    // Do something with "listOfFiles[i]" 
} 

ACTUALIZACIÓN

Para listar los archivos de forma recursiva, el mejor enfoque es bastante fácil:

  • crear una cola de d irectories. Inicialmente agregue el primer directorio a la cola
  • Aparece el primer elemento de directorio fuera de la cola.
  • Lista de todos los archivos de ese directorio, igual que el anterior
  • iterar sobre todos los archivos de ese directorio
  • Si un archivo es un directorio (usar isDirectory() método), agregarlo a la parte posterior de la cola. De lo contrario, procese el siguiente archivo según sea necesario (por ejemplo, impresión)
  • Detenga cuando la cola esté vacía.

Un ejemplo (creo que un poco diferente de mi enfoque anterior) es http://www.javapractices.com/topic/TopicAction.do?Id=68


Cambiar el nombre de un archivo

http://www.roseindia.net/java/example/java/io/RenameFileOrDir.shtml

boolean Rename = oldfile.renameTo(newfile); 

Encontrar un nuevo nombre para cambiar el nombre a

No estoy seguro de lo que quiere las reglas de formato para ser - cuando he implementado la misma utilidad en Perl para mi propio uso Solía ​​expresiones regulares. Para Java, sería java.util.regex

+0

¡Gracias! Descubrí cómo hacerlo recursivamente aquí: http://www.javapractices.com/topic/TopicAction.do?Id=68 –

+0

@Amir - LOL ... Agregué el mismo enlace como ejemplo. Creo que mi algo anterior podría ser un poco más sencillo de implementar (vi a un desarrollador de Java muy novato hacerlo en varios minutos) – DVK

1

Este Sun Totorial podría ser un buen comienzo. Si estuviese en su lugar, básicamente recuperaría todos los archivos en el directorio y luego los recorrería, como se muestra en el here. Puede que tenga que usar expresiones regulares también, puede encontrar un tutorial básico here

1

Siempre puede usar la clase estándar java.io.File, pero es primitiva y no es muy útil por sí misma.

Para las operaciones complejas de E/S de archivos, recomiendo usar Apache Commons IO, que proporciona una biblioteca de clase enriquecida para (entre otras cosas) operaciones de archivos. Ver clases como FileUtils y FilesystemUtils

Cuestiones relacionadas