So kopieren Sie ein Verzeichnis in Java
Hier ist ein Beispiel zum Kopieren eines Verzeichnisses und aller seiner Unterverzeichnisse und Dateien in ein neues Zielverzeichnis. Der Code ist voller Kommentare und selbsterklärend. Ich habe einen Kommentar hinterlassen, wenn Sie weitere Erklärungen benötigen.
Beispiel
Kopieren Sie den Ordner „c:\example“ und seine Unterverzeichnisse und Dateien in einen anderen neuen Ordner „c:\example-new“.
package com.example.file; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class CopyDirectoryExample { public static void main(String[] args) { File srcFolder = new File("c:\\example"); File destFolder = new File("c:\\example-new"); //make sure source exists if(!srcFolder.exists()){ System.out.println("Directory does not exist."); //just exit System.exit(0); }else{ try{ copyFolder(srcFolder,destFolder); }catch(IOException e){ e.printStackTrace(); //error, just exit System.exit(0); } } System.out.println("Done"); } public static void copyFolder(File src, File dest) throws IOException{ if(src.isDirectory()){ //if directory not exists, create it if(!dest.exists()){ dest.mkdir(); System.out.println("Directory copied from " + src + " to " + dest); } //list all the directory contents String files[] = src.list(); for (String file : files) { //construct the src and dest file structure File srcFile = new File(src, file); File destFile = new File(dest, file); //recursive copy copyFolder(srcFile,destFile); } }else{ //if file, then copy it //Use bytes stream to support all file types InputStream in = new FileInputStream(src); OutputStream out = new FileOutputStream(dest); byte[] buffer = new byte[1024]; int length; //copy the file content in bytes while ((length = in.read(buffer)) > 0){ out.write(buffer, 0, length); } in.close(); out.close(); System.out.println("File copied from " + src + " to " + dest); } } }
Ergebnis
Directory copied from c:\example to c:\example-new File copied from c:\example\404.php to c:\example-new\404.php File copied from c:\example\footer.php to c:\example-new\footer.php File copied from c:\example\js\superfish.css to c:\example-new\js\superfish.css File copied from c:\example\js\superfish.js to c:\example-new\js\superfish.js File copied from c:\example\js\supersubs.js to c:\example-new\js\supersubs.js Directory copied from c:\example\images to c:\example-new\images File copied from c:\example\page.php to c:\example-new\page.php Directory copied from c:\example\psd to c:\example-new\psd ... Done