//注意我沒有用try catch,只是簡單的拋出異常 public class Test {code
public static void main(String[] args)throws Exception { File srcDir=new File("d:/test"); File desDir=new File("d:/new"); copyDir(srcDir,desDir); } //拷貝文件夾 public static void copyDir(File sorcDir,File desDir)throws Exception{ if(!sorcDir.exists()){ System.out.println("源文件夾不存在"); return; } //此處只能供第一次建立目標文件夾使用 if(!desDir.exists()) { desDir = new File(desDir, sorcDir.getName()); desDir.mkdirs(); } //判斷若是源文件是文件 if(sorcDir.isFile()){ File newFile = new File(desDir,sorcDir.getName()); copyFile(sorcDir,newFile); }else { File f[]=sorcDir.listFiles(); for(File i:f){ if(i.isFile()){ System.out.println(i); File newFile = new File(desDir,i.getName()); copyFile(i,newFile); }else{ File newDir =new File(desDir,i.getName()); // 注意這一句,必需要在這建立, newDir.mkdirs(); copyDir(i,newDir); } } } } //copy文件 public static void copyFile(File srcFile,File desFile)throws Exception{ if(!srcFile.exists()) { System.out.println("源文件不存在"); return; } if(!desFile.exists()) desFile.createNewFile(); byte b[]=new byte[1024]; int len=-1; InputStream in=new FileInputStream(srcFile); OutputStream out=new FileOutputStream(desFile); while ((len=in.read(b))!=-1){ out.write(b,0,len); } in.close(); out.close(); }
}get