Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.26 KB | None | 0 0
  1. package accesoDatos;
  2. /**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.
  3.  *Haz una copia previa de dicho directorio. La excepción la tratamos de la forma más común.
  4.  */
  5. import java.io.File;
  6. import java.io.FileInputStream;
  7. import java.io.FileNotFoundException;
  8. import java.io.FileOutputStream;
  9. import java.io.IOException;
  10. import java.util.Scanner;
  11.  
  12. public class Ejercicio12Oct2Mejorado {
  13.     private static final String backup = "C:/Users/Anonymous/Desktop/BACKUP";
  14.    
  15.    
  16.     public static void main(String[] args) {
  17.         Scanner teclado = new Scanner(System.in);
  18.        
  19.         System.out.println("Introduce el directorio a copia: ");
  20.         File origen = new File(teclado.nextLine());
  21.         if (origen.isDirectory())
  22.             copiarDirectorio(origen, new File(backup));
  23.         else
  24.             System.out.println("El directorio origen no es válido!!");
  25.        
  26.         System.out.println("Copia finalizada");
  27.         teclado.close();
  28.        
  29.     }
  30.    
  31.     public static void copiarDirectorio(File origen, File destino) {
  32.        
  33.         if (origen.isDirectory()) { //comprobamos si el origen es un directorio
  34.             if (!destino.exists())      //comprobamos si existe el directorio en destino y si no es así lo creamos
  35.                 destino.mkdir();
  36.            
  37.             String[] ficheros;
  38.             ficheros = origen.list();   //obtenemos la lista de ficheros y directorios del directorio origen
  39.            
  40.             for (String fichero : ficheros) {  //vamos recorriendo toda la lista e instanciando recursivamente con ella
  41.                 copiarDirectorio(new File(origen, fichero), new File(destino, fichero));
  42.             }
  43.         } else
  44.             copiarFichero(origen, destino);
  45.     }
  46.    
  47.     public static void copiarFichero(File origen, File destino) {
  48.         try (FileInputStream leer = new FileInputStream(origen); FileOutputStream grabar = new FileOutputStream(destino);){ //creamos 2 objs para flujo de datos
  49.             int cont = 0;
  50.             while ((cont = leer.read()) != -1) //leemos hasta -1 que indicaría final de fichero
  51.                 grabar.write(cont);             //grabamos el dato leído del origen en el destino
  52.            
  53.            
  54.         } catch(FileNotFoundException e) {
  55.             System.out.println("No existe el fichero origen o destino!!");
  56.            
  57.         } catch(IOException e) {
  58.             System.out.println("Error de lectura/escritura");
  59.         }
  60.        
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement