Java实现复制文件夹及其子目录

主要用递归的方法实现aa文件夹及其子目录复制到bb文件夹。

代码如下:

public class FileCopy {

  public static void main(String[] args) {

    try {

      copyDir("D:\\aa", "D:\\bb");

    } catch (IOException e) {

      e.printStackTrace();

    }

  }

  public static void copyDir(String sourcePath, String newPath) throws IOException {

    File file = new File(sourcePath);

    String[] filePath = file.list();

    if (!(new File(newPath)).exists()) {

      (new File(newPath)).mkdir();

    }

    for (int i = 0; i < filePath.length; i++) {

      if ((new File(sourcePath + file.separator + filePath[i])).isDirectory()) {

        copyDir(sourcePath  + file.separator  + filePath[i], newPath + file.separator + filePath[i]);

      }

      if (new File(sourcePath  + file.separator + filePath[i]).isFile()) {

        copyFile(sourcePath + file.separator + filePath[i], newPath + file.separator + filePath[i]);

      }

     }
   }

  public static void copyFile(String oldPath, String newPath) throws IOException {

    File oldFile = new File(oldPath);

    File file = new File(newPath);

    FileInputStream in = new FileInputStream(oldFile);

    FileOutputStream out = new FileOutputStream(file);

    byte[] buffer=new byte[2097152];

    while((in.read(buffer)) != -1){

      out.write(buffer);

    }

    out.close();

    in.close();

  }

}

你可能感兴趣的:(Java实现复制文件夹及其子目录)