Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package accesoDatos;
- /**Pedir al usuario el nombre de un directorio y si este tiene más de 5 archivos, coger el 2º y el 5º archivo y renombrarlos con los nombres segundo.dat y quinto.dat.
- *Haz una copia previa de dicho directorio. La excepción la tratamos de la forma más común.
- */
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.util.Scanner;
- public class Ejercicio12Oct2Mejorado {
- private static final String backup = "C:/Users/Anonymous/Desktop/BACKUP";
- public static void main(String[] args) {
- Scanner teclado = new Scanner(System.in);
- System.out.println("Introduce el directorio a copia: ");
- File origen = new File(teclado.nextLine());
- if (origen.isDirectory())
- copiarDirectorio(origen, new File(backup));
- else
- System.out.println("El directorio origen no es válido!!");
- System.out.println("Copia finalizada");
- teclado.close();
- }
- public static void copiarDirectorio(File origen, File destino) {
- if (origen.isDirectory()) { //comprobamos si el origen es un directorio
- if (!destino.exists()) //comprobamos si existe el directorio en destino y si no es así lo creamos
- destino.mkdir();
- String[] ficheros;
- ficheros = origen.list(); //obtenemos la lista de ficheros y directorios del directorio origen
- for (String fichero : ficheros) { //vamos recorriendo toda la lista e instanciando recursivamente con ella
- copiarDirectorio(new File(origen, fichero), new File(destino, fichero));
- }
- } else
- copiarFichero(origen, destino);
- }
- public static void copiarFichero(File origen, File destino) {
- try (FileInputStream leer = new FileInputStream(origen); FileOutputStream grabar = new FileOutputStream(destino);){ //creamos 2 objs para flujo de datos
- int cont = 0;
- while ((cont = leer.read()) != -1) //leemos hasta -1 que indicaría final de fichero
- grabar.write(cont); //grabamos el dato leído del origen en el destino
- } catch(FileNotFoundException e) {
- System.out.println("No existe el fichero origen o destino!!");
- } catch(IOException e) {
- System.out.println("Error de lectura/escritura");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement