Java 實現目錄拷貝
阿新 • • 發佈:2018-12-25
public class DirectoryCopy { public static void main(String[] args) throws IOException { File source = new File("d:\\source"); File target = new File("e:\\"); copyDir(source, target); } // 拷貝目錄 private static void copyDir(File source, File target) throws IOException { // 判斷source if (source.isDirectory()) { // 是目錄 // 在target下建立同名目錄 File dir = new File(target, source.getName()); dir.mkdirs(); // 遍歷source下所有的子檔案,將每個子檔案作為source,將新建立的目錄作為target進行遞迴。 File[] files = source.listFiles(); for (File file : files) { copyDir(file, dir); } } else { // 是檔案 // 在target目錄下建立同名檔案,然後用流實現檔案拷貝。 File file = new File(target, source.getName()); file.createNewFile(); copyFile(source, file); } } // 拷貝檔案 private static void copyFile(File source, File file) throws IOException { // 建立流物件 InputStream is = null; OutputStream os = null; try { is = new FileInputStream(source); os = new FileOutputStream(file); // 基本讀寫操作 byte[] bys = new byte[1024]; int len = 0; while ((len = is.read(bys)) != -1) { os.write(bys, 0, len); } } finally { if (os != null) { os.close(); } if (is != null) { is.close(); } } } }