虽然现在文件的拷贝都用 fileutils开源代码但今天也写写练手FileUtils.copyDirectoryToDirectory(srcDir, destDir);
class="java">@Test public void copy3() { //FileUtils.copyDirectoryToDirectory(srcDir, destDir); copy("d:\\a","d:\\b"); System.out.println("ok"); } /** * * @param desrc * 源目录 * @param src * 目标目录 */ public void copy(String desrc, String src) { File file = new File(desrc); if (!file.exists()) { System.out.println("目录不存在"); return; } if (file.isDirectory()) { File descfile = new File(src); if(!descfile.exists()){ descfile.mkdirs(); } File[] dic = file.listFiles(); if (dic != null && dic.length > 0) { for (File f : dic) { // 拷贝 copy(f.getAbsolutePath(), src+File.separator+f.getName()); } } } else { // 拷贝 docopy(file, new File(src)); } } public void docopy(File file, File src) { System.out.println(file.getName()+"===="+file.getAbsolutePath()+"<<<<<"); FileInputStream fin = null; BufferedInputStream bin = null; FileOutputStream fou = null; BufferedOutputStream bou = null; byte[] b = new byte[1024]; try { fin = new FileInputStream(file); bin = new BufferedInputStream(fin); fou = new FileOutputStream(src); bou = new BufferedOutputStream(fou); int i = 0; while ((i=bin.read(b)) != -1) { bou.write(b, 0, i); } bou.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { fin.close(); fou.close(); fou.close(); bou.close(); } catch (IOException e) { e.printStackTrace(); } } }
?