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 objeto File asociado a "file.txt" y dentro de un bloque try-catch se 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 y getAbsolutePath() para recuperar la ubicación completa dentro del sistema.
  • Comprobación de permisos y propiedades: Métodos como canRead() y canWrite() evalúan los permisos del sistema de archivos. length() devuelve el tamaño en bytes, mientras que isFile() y isDirectory() 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 invoca fichero.delete() tras comprobar su existencia con exists().

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