Bienvenidos a un nuevo curso. Ahora estoy en el ciclo de grado superior: Desarrollo de aplicaciones multiplataforma. Y voy a ser parte del experimento de la formación dual. Estaré haciendo practicas durante un año, y a la vez finalizando la formación.

Deseadme suerte.

domingo, 15 de enero de 2017

Repasando AD -> copia-pega recursivamente

0

Escribir un método que reciba las rutas correspondientes a dos directorios y copie recursivamente (subdirectorios y ficheros) el contenido del directorio origen en el directorio destino.



Principal


package copiapegarecursivo;

import java.io.File;
import java.io.IOException;

public class CopiaPegaRecursivo {

    public static void main(String[] args) {
        // Definición del directorio origen
        File origen = new File("C:\\Users\\Navis\\Desktop\\origen\\");
        // Definición del directorio destino  
        File destino = new File("C:\\Users\\Navis\\Desktop\\destino\\");
        // llamada a la clase
        Ficheros fc = new Ficheros();
        try{ // intenta
            //copiar directorio origen en destino
            fc.copiarDirectorio(origen, destino);
            //saca mensaje por pantalla
            System.out.println("Volcado finalizado");
        }
        catch(IOException e){ //control de errores
            //definción del error
            e.printStackTrace();
        }  
    }
}

Clase


package copiapegarecursivo;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Ficheros {
    // Función qe copia el directorio
     public void copiarDirectorio(File dOrigen, File dDestino) throws IOException{
        // Si es un directorio origen
        if(dOrigen.isDirectory()){
            // Si el directorio destino no existe
            if(!dDestino.exists()){
                //crea el directorio destino
                dDestino.mkdir();
            }                               
            // Se crea un listado del contenido del directorio origen
            String[] hijos = dOrigen.list();
            // recorrer la lista                                
            for(int i = 0; i < hijos.length; i++){
                // copia los directorios
                copiarDirectorio(new File(dOrigen, hijos[i]), new File(dDestino, hijos[i]));
                // saca el mensaje por pantalla
                System.out.println("Copiado " + hijos[i]);
            }
        }
        else{
            // copia los ficheros
            copiarFichero(dOrigen, dDestino);
        }
    }
    //Función que copia los ficheros
    public void copiarFichero(File fOrigen, File fDestino) throws IOException{
        // Lee el fichero
        FileInputStream origen = new FileInputStream(fOrigen);
        // Escribe el fichero
        FileOutputStream destino = new FileOutputStream(fDestino);
        byte[] buffer = new byte[1024];
        int cap;
        // mientras no llege al final la lectura del origen...
          while ((cap = origen.read(buffer)) > 0){
            // escribe en destino
            destino.write(buffer, 0, cap);
        }
        // cierra los ficheros 
        origen.close();
        destino.close();
        // saca un mensaje por pantalla 
        System.out.println("Copiado " + fOrigen.getName());
     }
}

0 comentarios:

Publicar un comentario

Etiquetas actuales

BD (67) DEF (64) PROG (64) SQL (44) Java (29) PRACTICAS (20) php (18) DI (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) HTML (13) SGE (12) ERP (9) CONSULTAS (8) css (8) Linux (5) XML (5) Android (4) PDM (4) C (3) NetBeans (3) PSP (3) SMARTY (3) comandos (3) HOOK (2) POST (2) XSD (2) cURL (2) JS (1) MEDIA-QUERYS (1) PDO (1) RESPONSIVE (1) TPL (1) TRADUCCIÓN (1) app_inventor (1)

Todas las etiquetas

EJER (78) BD (67) DEF (64) PROG (64) SQL (44) c# (40) Programación (39) Ficheros (36) Java (29) bases de datos (21) PRACTICAS (20) lenguajes de marcas (19) AD (18) Entorno de desarrollo (18) php (18) PROCEDIMIENTOS (17) DI (16) FORM (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) lenguaje C (16) E/R (14) HTML (13) SGE (12) Sistemas informáticos (10) ERP (9) CONSULTAS (8) TRANSACCIONES (8) TRIGGER (8) VISUAL BASIC (8) css (8) FUNCIONES (7) html5 (6) Ada (5) EXAMEN (5) Linux (5) XML (5) estructuras (5) Android (4) DISEÑO (4) INTERFAZ (4) LOG (4) OpenBravo (4) PDM (4) ACTUALIZAR (3) C (3) DIAGRAMA (3) Directorios (3) NEW (3) NOR (3) NetBeans (3) OLD (3) PSP (3) SMARTY (3) comandos (3) css3 (3) AISLAMIENTOS (2) C++ (2) CONTROLERRORES (2) ELIMINAR (2) HOOK (2) INSERTAR (2) INST (2) MULTITABLA (2) POST (2) RECURSIVIDAD (2) SUBCONSULTAS (2) VISTAS (2) XSD (2) cURL (2) punteros (2) AJENA (1) BLOQUEOS (1) Byte (1) CREACION (1) CRM (1) Configuración (1) Controles (1) Datos (1) GOTFOCUS (1) IMAGENES (1) INDICES (1) JS (1) Lenght (1) MEDIA-QUERYS (1) Mingw (1) MonoDeveloped (1) OPTIMISTA (1) PDO (1) PESIMISTA (1) RESPONSIVE (1) SPEAK (1) Scanner (1) Serializacion (1) Streams (1) System (1) TPL (1) TRADUCCIÓN (1) USUARIOS (1) UseSystemPasswordChar (1) app_inventor (1) char (1) examenes (1) libreoffice (1) make (1) redes (1)