public class CopyFiles { public static void main(String[] args) throws Exception { String src = "C:\Users\Administrator\Desktop\java\workspace\Day01\sources\a";//源路径 String tar = src+1; //目标路径 copyFolder(src,tar); //拷贝文件夹方法 } private static void copyFolder(String srcFolder, String tarFolder) throws Exception { File tar = new File(tarFolder); if(!tar.exists()){ tar.mkdir(); } //System.out.println(tar.getName()); File src = new File(srcFolder); File[] srcFiles = src.listFiles();//遍历源文件 for (File file:srcFiles ) { if(file.isFile()){//如果是文件则拷贝 //System.out.println(file.getName()); // System.out.println("拷贝文件"); String tarPath = tarFolder+"\"+file.getName(); // System.out.println(tarName); copyFile(file,tarPath); } else {//如果不是文件,则新建文件夹,把当前文件拷贝到文件夹 // System.out.println("拷贝文件夹"); //新建文件夹 // System.out.println(file.getName()); String tarPath = tarFolder+"\"+file.getName(); copyFolder(file.getAbsolutePath(),tarPath); } } } private static void copyFile(File srcFile, String tarPath) throws Exception { FileInputStream in = new FileInputStream(srcFile); FileOutputStream out = new FileOutputStream(tarPath); int len = 0; byte[] temp = new byte[1024]; while((len=in.read(temp))!=-1){ out.write(temp,0,len); out.flush(); } out.close(); in.close(); } }