五、java IO--通过字节流拷贝文件夹
package cn.edu.hrbeu.io.file; import java.io.File; /** * 文件夹的拷贝 * 1、当为文件时-->直接拷贝 * 2、当为文件夹时-->创建文件夹-->递归查找子孙级 */ public class CopyDir { public static void main(String[] args) { String srcPath = ("F:/srcDir"); String destPath = ("F:/destDir"); copyDir(srcPath,destPath); } /** * 拷贝文件夹 * @param srcPath * @param destPath */ public static void copyDir(String srcPath,String destPath){ File src = new File(srcPath); File dest = new File(destPath); if (src.isDirectory()){ //1、如果是文件夹 // Creates a new File instance from a parent pathname string(destPath) // and a child pathname string(src.getName()). dest = new File(destPath,src.getName()); //在路径destPath中新建一个src.getName()子目录 dest.mkdirs(); //Creates the directory named by this abstract pathname(dest) } copyDirDetail(src,dest); } /** * 拷贝文件夹的细节实现(单独提出需要递归的部分,方便递归) * @param src * @param dest */ public static void copyDirDetail(File src,File dest){ if (src.isFile()) { //2、如果是文件 CopyFile.copyFile(src,dest); }else if (src.isDirectory()) { //1、如果是文件夹 dest.mkdirs(); //建立一个新的子目录 for(File sub:src.listFiles()) copyDirDetail(sub,new File(dest,sub.getName()));//3、递归查找子孙级 } } }