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 elString
con el nombre del archivo en el objetoFile
no 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 objetoFile
que 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()
.