Jak rekurencyjnie skopiować cały katalog, w tym folder nadrzędny w Javie

Obecnie radzę sobie z folderami z jednego miejsca do drugiego. Działa dobrze, ale nie kopiuje oryginalnego folderu, w którym znajdują się wszystkie pozostałe pliki i foldery. To jest kod, którego używam:

public static void copyFolder(File src, File dest) throws IOException {
  if (src.isDirectory()) {
    //if directory not exists, create it
    if (!dest.exists()) {
      dest.mkdir();
    }
    //list all the directory contents
    String files[] = src.list();
    for (String file : files) {
      //construct the src and dest file structure
      File srcFile = new File(src, file);
      File destFile = new File(dest+"\\"+src.getName(), file);
      //recursive copy
      copyFolder(srcFile,destFile);
    }
  } else {
    //if file, then copy it
    //Use bytes stream to support all file types
    InputStream in = new FileInputStream(src);
    OutputStream out = new FileOutputStream(dest); 
    byte[] buffer = new byte[1024];
    int length;
    //copy the file content in bytes 
    while ((length = in.read(buffer)) > 0){
      out.write(buffer, 0, length);
    }
    in.close();
    out.close();
    System.out.println("File copied from " + src + " to " + dest);
  }
}

Więc mam folder srcC:\test\mytest\..all folders..

Chcę go skopiowaćC:\test\myfiles

Ale zamiast się dostaćC:\test\myfiles\mytest\..all folders.. OtrzymujęC:\test\myfiles\..all folders..

questionAnswers(8)

yourAnswerToTheQuestion