public static void main(String[] args) { File f1 = new File("D:/JavaTest"); File f2 = new File("D:/JavaTest2"); if (!f2.exists()) { f2.mkdir(); } copyFile(f1, f2); } // 把 f1 文件夹 复制到 f2 文件夹 public static void copyFile(File f1, File f2) { File[] files = f1.listFiles(); if (files != null) { for (File file : files) { // 新文件的保存路径 String path = f2.getAbsolutePath() + "/" + file.getName(); if (file.isFile()) { // 如果是文件,就直接复制 try { FileInputStream fis = new FileInputStream(file); FileOutputStream fos = new FileOutputStream(path, true); int length = 0; byte[] bytes = new byte[1024]; while ((length = fis.read(bytes)) != -1) { fos.write(bytes, 0, length); } fos.close(); fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }else if (file.isDirectory()) { // 如果是文件夹,就先创建,然后再把内容复制到新文件夹中 // 先创建不存在的文件夹 File directoryFile = new File(path); directoryFile.mkdir(); // 把文件夹中的内容拷贝到新文件夹中 copyFile(file, directoryFile); } } } }
public static void main(String[] args) { folderCopy("D:\JavaTest", "E:\JavaTest"); System.out.println("文件夹拷贝完成!"); } public static void folderCopy(String str1, String str2) { // str1 为原来, str2 为复制后 File file1 = new File(str1); File[] files1 = file1.listFiles(); File file2 = new File(str2); if (!file2.exists()) { file2.mkdirs(); } for (File file : files1) { if (file.isFile()) { fileCopy(file.getPath(), str2 + "\" + file.getName()); } else if (file.isDirectory()) { folderCopy(file.getPath(), str2 + "\" + file.getName()); } } } public static void fileCopy(String str1, String str2) { // 复制文件 try { // 读 输入 FileInputStream fis = new FileInputStream(str1); // 自动创建不存在的文件 FileOutputStream fos = new FileOutputStream(str2, true); byte[] bytes = new byte[5]; int length = 0; while ((length = fis.read(bytes)) != -1) { fos.write(bytes, 0, length); } // 先打开的后关闭,后打开的先关闭 fos.close(); fis.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }