La clase File proporciona una representación abstracta de ficheros y directorios.
Esta clase, permite examinar y manipular archivos y directorios, independientemente de la plataforma en la que se esté trabajando: Linux, Windows, etc.
Las instancias de la clase File representan nombres de archivo, no los archivos en sí mismos.
El archivo correspondiente a un nombre dado podría ser que no existiera, por ello, habrá que controlar las posibles excepciones.
Al trabajar con File, las rutas pueden ser:
- Relativas al directorio actual.
- Absolutas si la ruta que le pasamos como parámetro empieza por
- La barra "/" en Unix, Linux.
- Letra de unidad (C:, D:, etc.) en Windows.
- UNC(universal naming convention) en windows, como por ejemplo:
File miFile=new File("\\\\mimaquina\\download\\prueba.txt");
A través del objeto File, un programa puede examinar los atributos del archivo, cambiar su nombre, borrarlo o cambiar sus permisos. Dado un objeto file, podemos hacer las siguientes operaciones con él:
- Renombrar el archivo, con el método
renameTo(). El objeto File dejará de referirse al archivo renombrado, ya que elStringcon el nombre del archivo en el objetoFileno cambia. - Borrar el archivo, con el método
delete(). También, condeleteOnExit()se borra cuando finaliza la ejecución de la máquina virtual Java. - Crear un nuevo fichero con un nombre único. El método estático
createTempFile()crea un fichero temporal y devuelve un objetoFileque apunta a él. Es útil para crear archivos temporales, que luego se borran, asegurándonos tener un nombre de archivo no repetido. - Establecer la fecha y la hora de modificación del archivo con
setLastModified(). Por ejemplo, se podría hacer:new File("prueba.txt").setLastModified(new Date().getTime());para establecerle la fecha actual al fichero que se le pasa como parámetro, en este caso prueba.txt. - Crear un directorio con el método
mkdir(). También existemkdirs(), que crea los directorios superiores si no existen. - Listar el contenido de un directorio. Los métodos
list()ylistFiles()listan el contenido de un directoriolist()devuelve un vector de String con los nombres de los archivos,listFiles()devuelve un vector de objetosFile. - Listar los nombres de archivo de la raíz del sistema de archivos, mediante el método estático
listRoots().