天天看点

java 复制文件夹

 public static void main(String[] args) {

  // TODO Auto-generated method stub

  String sourceFolderPath="F://燕子//java";

  String targetFolderPath="F://燕子//features//java";

  targetFolderPath+=File.separator+sourceFolderPath.substring(sourceFolderPath.lastIndexOf(File.separator)+1);

  copyFolder(sourceFolderPath,targetFolderPath);

 }

 public static void copyFolder(String sourceFolderPath, String targetFolderPath) {

  //System.out.println(fileName);

  try {

  (new File(targetFolderPath)).mkdirs(); // 如果文件夹不存在 则建立新文件夹

  File a = new File(sourceFolderPath);

  String[] file = a.list();

  File temp = null;

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

  if (sourceFolderPath.endsWith(File.separator)) {

  temp = new File(sourceFolderPath + file[i]);

  } else {

  temp = new File(sourceFolderPath + File.separator + file[i]);

  }

  if (temp.isFile()) {

  FileInputStream input = new FileInputStream(temp);

  FileOutputStream output = new FileOutputStream(targetFolderPath

  + "/" + (temp.getName()).toString());

  byte[] b = new byte[1024 * 5];

  int len;

  while ((len = input.read(b)) != -1) {

  output.write(b, 0, len);

  }

  output.flush();

  output.close();

  input.close();

  }

  if (temp.isDirectory()) {// 如果是子文件夹

  copyFolder(sourceFolderPath + "/" + file[i], targetFolderPath + "/" + file[i]);

  }

  }

  } catch (Exception e) {

  System.out.println("复制整个文件夹内容操作出错");

  e.printStackTrace();

  }

  }