Class copywenjianjia{public static void Main (string[] args) throws Exception {//source folder String yuan = "C:\\nimeizide"; Destination String Mudi = "D:\\nimeizide"; Establish the destination folder (new File (Mudi)). Mkdirs (); Gets the current file or directory of the source folder file[] files = (new file (yuan)). Listfiles (); for (File file:files) {if (File.isdirectory ()) { String Yuandir = Yuan + "\ \" + File.getname (); String Mudidir = Mudi + "\ \" + File.getname (); Copy directory Copydir (Yuandir, Mudidir); } else {copyFile (file, new file (Mudi + "\ \" + File.getname ())); }}}//Copy Folder public static void Copydir (String yuandir, String mudidir) throws Exception {(new File (Mudidir)). Mkdirs (); file[] files = (new File (Yuandir)). Listfiles (); for (File file:files) {if (File.isfile ()) { File Yuanfile = file;//source file Mudifile = new file (new file (Mudidir). Getabs Olutepath () + "\ \" + file.getname ()); CopyFile (Yuanfile, mudifile); } else {String YuanJia = yuandir + "\ \" + Fi Le.getname (); String Mudijia = mudidir + "\ \" + File.getname (); Copydir (YuanJia, Mudijia); }}}//Copy file public static void CopyFile (file yuanfile, file mudifile) throws Exception {Bufferedinputstream Buis = new Bufferedinputstream (New FileInputStream (Yuanfile.getabsolutefile ())); Bufferedoutputstream buos = new Bufferedoutputstream (New FileOutputStream (Mudifile.getabsolutefile ())); byte[] buf = new byte[1024]; int Len; while (len = Buis.read (BUF))! =-1) {buos.write (buf, 0, Len); Buos.flush (); } buis.close (); Buos.close (); }}
Copy a multi-level folder from C drive to the D drive