# Proyecto t12ficheros-ejerciciosA

Se deben modificar los archivos:

* README.md con las descripción del proyecto
* pom.xml con los nombre del proyecto y el artefacto
 

# EJERCICIOS (A) - GESTIÓN DE FICHEROS

Para probar estos ejercicios utilizar el archivo “Documentos.zip”. Descárgalo del aula virtual y descomprímelo en la carpeta de cada proyecto que crees.

## Ejercicio A1 - Mostrar información de ficheros

Implementa un programa que pida al usuario introducir por teclado una ruta del sistema de archivos (por ejemplo, “C:/Windows” o “Documentos”) y muestre información sobre dicha ruta (ver función más abajo). El proceso se repetirá una y otra vez hasta que el usuario introduzca una ruta vacía (tecla intro). Deberá manejar las posibles excepciones.

Necesitarás crear la función void muestraInfoRuta(File ruta) que dada una ruta de tipo File haga lo siguiente:

* Si es un archivo, mostrará por pantalla el nombre del archivo.
* Si es un directorio, mostrará por pantalla la lista de directorios y archivos que
contiene (sus nombres). Deberá mostrar primero los directorios y luego los
archivos.
* En cualquier caso, añade delante del nombre la etiqueta [*] o [A] para indicar si es
un directorio o un archivo respectivamente.
* Si el path no existe lanzará un FileNotFoundException.

## Ejercicio A2 - Mostrar información de ficheros (v2)

Partiendo de una copia del programa anterior, modifica la función muestraInfoRuta:
* En el caso de un directorio, mostrará la lista de directorios y archivos en orden
alfabético. Es decir, primero los directorios en orden alfabético y luego los archivos
en orden alfabético. Te será útil Arrays.sort().

* Añade un segundo argumento ‘boolean info’ que cuando sea ‘true’ mostrará, junto
a la información de cada directorio o archivo, su tamaño en bytes y la fecha de la
última modificación. Cuando ‘info’ sea ‘false’ mostrará la información como en el
ejercicio anterior.

## Ejercicio A3 - Renombrando directorios y ficheros

Implementa un programa que haga lo siguiente:

* Cambiar el nombre de la carpeta ‘Documentos’ a ‘DOCS’, el de la carpeta
‘Fotografias’ a ‘FOTOS’ y el de la carpeta ‘Libros’ a ‘LECTURAS’

* Cambiar el nombre de todos los archivos de las carpetas FOTOS y LECTURAS
quitándole la extensión. Por ejemplo, ‘astronauta.jpg’ pasará a llamarse
‘astronauta’.

## Ejercicio A4 - Creando (y moviendo) carpetas

Implementa un programa que cree, dentro de ‘Documentos’, dos nuevas carpetas: ‘Mis
Cosas’ y ‘Alfabeto’. Mueve las carpetas ‘Fotografias’ y ‘Libros’ dentro de ‘Mis Cosas’. Luego crea dentro de ‘Alfabeto’ una carpeta por cada letra del alfabeto (en mayúsculas): ‘A’, ‘B’, 
‘C’... ‘Z’. Te serán de ayuda los códigos numéricos ASCII: https://elcodigoascii.com.ar

## Ejercicio A5 - Borrando archivos

Implementa un programa con una función boolean borraTodo(File f) que borre f: Si no
existe lanzará una excepción. Si es un archivo lo borrará. Si es un directorio, borrará
primero sus archivos y luego el propio directorio (recuerda que para poder borrar un
directorio debe estar vacío). Devolverá ‘true’ si pudo borrar el ‘File f’ (‘false’ si no fué posible).

Prueba la función borrando las carpetas: ‘Documentos/Fotografias’, ‘Documentos/Libros’
y ‘Documentos’ (es decir, tres llamadas a la función, en ese orden).

*Super extra challenge: Esta función, tal y como está definida, no borrará las subcarpetas que estén dentro de una carpeta (para ello habría que borrar primero el contenido de dichas subcarpetas). ¿Se te ocurre cómo podría hacerse?*

### (Proyecto creado usando la plantilla plantilla_iesthiar-maven-21)
