Copier un répertoire en Java

Dans ce tutoriel nous allons découvrir comment copier un répertoire, ses sous-répertoires et les fichiers, dans un répertoire de destination en Java.
 
 

Exemple:

Le code suivant copiez le dossier « c:\\old » et ses sous-répertoires et fichiers dans un autre dossier « c:\\new ».

import java.io.*;

public class Main
{
	public static void copy(File src, File dest) throws IOException{
		
    	if(src.isDirectory()){
			//si le répertoire n'existe pas, créez-le
    		if(!dest.exists()){
    		   dest.mkdir();
    		   System.out.println("Dossier "+ src + "  > " + dest);
    		}

    		//lister le contenu du répertoire
    		String files[] = src.list();
    		
    		for (String f : files) {
    		   //construire la structure des fichiers src et dest
    		   File srcF = new File(src, f);
    		   File destF = new File(dest, f);
    		   //copie récursive
    		   copy(srcF, destF);
    		}
    	}else{
    	    //si src est un fichier, copiez-le.
    	    InputStream in = new FileInputStream(src);
    	    OutputStream out = new FileOutputStream(dest); 
    	                     
    	    byte[] buffer = new byte[1024];

    	    int length;
    	    //copier le contenu du fichier
    	    while ((length = in.read(buffer)) > 0){
    	    	out.write(buffer, 0, length);
    	    }
 
    	    in.close();
    	    out.close();
    	    System.out.println("Fichier " + src + " > " + dest);
    	}
	}

    public static void main(String[] args)
    {
    	File src = new File("c:\\old");
    	File dest = new File("c:\\new");   	
        try{
        	copy(src, dest);
        }catch(IOException e){
        	e.printStackTrace();
        }
    }
}

 
Sortie:
 

 

Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *