//現在制定路徑下創建名稱為左側的文件夾
public class Copy { public static void main(String[] args) { //原始文件地址 File srcFolder = new File("C:\\Users\\Pei\\Desktop\\測試復制"); //原始文件名 String srcFloderName = srcFolder.getName(); System.out.println(srcFloderName); //要復制到的文件 File desFolder = new File("C:\\Users\\Pei\\Desktop\\左側", srcFloderName); //如果要復制到的文件沒有這個文件夾,就創建一個 if (!desFolder.exists()){ desFolder.mkdir(); } try { copyFolder(srcFolder,desFolder); } catch (IOException e) { e.printStackTrace(); } } //復制文件夾 private static void copyFolder(File srcFolder, File desFolder) throws IOException { //遍歷原始文件夾里面的所有文件及文件夾 File[] files = srcFolder.listFiles(); for (File srcFile : files) { //如果是文件夾 if (srcFile.isDirectory()){ //在新的文件夾內創建一個和srcFile文件夾同名文件夾,然后再遞歸調用,判斷文件夾里面的情況,然后做出相應處理 String srcFileName = srcFile.getName(); File newFolder = new File(desFolder, srcFileName); if (!newFolder.exists()){ newFolder.mkdir(); copyFolder(srcFile,newFolder); } //如果是文件 }else { String srcFileName = srcFile.getName(); File desFile = new File(desFolder, srcFileName); copyFile(srcFile,desFile); } } } //復制文件(這里復制文件如果看不懂的請看我另一篇博客[IO流詳解](https://blog.csdn.net/tannins_/article/details/99298995)) private static void copyFile (File srcFile, File desFile) throws IOException { BufferedReader br = new BufferedReader((new InputStreamReader(new FileInputStream(srcFile),"utf-8"))); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(desFile),"utf-8")); char[] chars = new char[1024]; int len; while ((len = br.read(chars)) != -1) { bw.write(len); bw.flush(); } br.close(); bw.close(); }