Tarea 3: Información y Metadatos de un Fichero
Explicación del Ejercicio
En esta tercera tarea nos enfocamos en consultar los metadatos e información detallada que el sistema operativo almacena sobre un fichero o directorio específico en Java.
Conceptos y métodos clave:
-
Creación del archivo físico (
createNewFile()): Se crea un objetoFileasociado a"file.txt"y dentro de un bloquetry-catchse fuerza la creación del fichero en disco. -
Consulta de nombres y rutas: Se utiliza
getName()para obtener el nombre corto,getPath()para la ruta relativa ygetAbsolutePath()para recuperar la ubicación completa dentro del sistema. -
Comprobación de permisos y propiedades: Métodos como
canRead()ycanWrite()evalúan los permisos del sistema de archivos.length()devuelve el tamaño en bytes, mientras queisFile()yisDirectory()determinan la naturaleza del elemento. -
Obtención del directorio padre: Se encadenan los métodos
getAbsoluteFile().getParentFile().getName()para resolver de forma precisa el nombre del directorio contenedor. -
Limpieza final (bloque
finally): Para asegurar la limpieza de archivos temporales generados durante la prueba, se invocafichero.delete()tras comprobar su existencia conexists().
Código Fuente y Salida
Clase2.java
package ClaseFile;
import java.io.File;
import java.io.IOException;
/*
* @author Eva Gallardo Romero
* @date 17 de sep de 2026
* Programa para mostrar la siguiente información de un fichero:
* - Nombre
* - Ruta (relativa y absoluta)
* - Si existe posibilidad de leer o escribir
* - Tamaño
* - Si es un directorio o un fichero
* - Nombre del directorio padre
*/
public class Clase2 {
public static void main(String[] args) {
//Creo el objeto file
File fichero = new File ("file.txt");
//File fichero = new File ("folder");
//File fichero = new File("src/ClaseFile/Clase2.java");
try {
//Creo el archivo en el equipo de ejecución
fichero.createNewFile();
//fichero.mkdirs();
System.out.println("------- Información sobre el fichero --------");
System.out.println(" · Nombre: " + fichero.getName());
System.out.println(" · Ruta relativa: " + fichero.getPath());
System.out.println(" · Ruta absoluta: " + fichero.getAbsolutePath());
//Hago la comprobación de si se puede leer y despues imprimo en funcion del resultado
if (fichero.canRead() == true) {
System.out.println(" · Posibilidad de leer: Sí");
} else {
System.out.println (" · Posibilidad de leer: No");
}
//Hago la comprobación de si se puede escribir y despues imprimo en funcion del resultado
if (fichero.canWrite() == true) {
System.out.println(" · Posibilidad de escribir: Sí" );
} else {
System.out.println (" · Posibilidad de escribir: No" );
}
System.out.println(" · Tamaño: " + fichero.length());
//Compruebo si es un fichero o un directorio y imprimo el tipo en funcion del resultado
if (fichero.isFile()) {
System.out.println(" · Tipo: Es un fichero");
} else if (fichero.isDirectory()) {
System.out.println(" · Tipo: Es un directorio");
}
//Saco la ruta absoluta en forma de objeto File, busco el padre del fichero y extraigo el nombre
System.out.println(" · Directorio padre: " + fichero.getAbsoluteFile().getParentFile().getName());
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
} finally {
if (fichero.exists()) fichero.delete();
}
}
}
Resultado Mostrado por Terminal
Salida de Consola
------- Información sobre el fichero --------
· Nombre: file.txt
· Ruta relativa: file.txt
· Ruta absoluta: C:\PROYECTOS\AccesoDatos\file.txt
· Posibilidad de leer: Sí
· Posibilidad de escribir: Sí
· Tamaño: 0
· Tipo: Es un fichero
· Directorio padre: AccesoDatos