Copying a Directory : Directory « File « Java Tutorial






import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class Main {
  public static void main(String[] argv) throws Exception {
    copyDirectory(new File("srcDir"), new File("dstDir"));
  }

  public static void copyDirectory(File srcDir, File dstDir) throws IOException {
    if (srcDir.isDirectory()) {
      if (!dstDir.exists()) {
        dstDir.mkdir();
      }

      String[] children = srcDir.list();
      for (int i = 0; i < children.length; i++) {
        copyDirectory(new File(srcDir, children[i]), new File(dstDir, children[i]));
      }
    } else {

      copyFile(srcDir, dstDir);
    }
  }

  static void copyFile(File src, File dst) throws IOException {
    InputStream in = new FileInputStream(src);
    OutputStream out = new FileOutputStream(dst);

    // Transfer bytes from in to out
    byte[] buf = new byte[1024];
    int len;
    while ((len = in.read(buf)) > 0) {
      out.write(buf, 0, len);
    }
    in.close();
    out.close();
  }

}








11.4.Directory
11.4.1.Create a directory (or several directories)
11.4.2.Create directory
11.4.3.Create directory along with required nonexistent parent directories
11.4.4.Create a directory; all ancestor directories must exist
11.4.5.Create a directory; all non-existent ancestor directories are automatically created
11.4.6.Create a directories recursively
11.4.7.Creates a new and empty directory in the default temp directory using the given prefix.
11.4.8.Determine File or Directory
11.4.9.Deleting a Directory (an empty directory)
11.4.10.Determine if file or directory exists
11.4.11.Determine if File or Directory is hidden
11.4.12.If a file or directory readable
11.4.13.Get name of parent directory
11.4.14.Get name of specified file or directory
11.4.15.Get parent directory as a File object
11.4.16.Get the content of a directory
11.4.17.Checks, whether the child directory is a subdirectory of the base directory.
11.4.18.Delete file or directory
11.4.19.Delete directory recursively
11.4.20.Delete file or directory when virtual machine terminates
11.4.21.Calculate directory size
11.4.22.Change last modified time of a file or directory
11.4.23.Mark file or directory Read Only
11.4.24.Rename file or directory
11.4.25.Moving a File or Directory to Another Directory
11.4.26.Search for files recursively
11.4.27.Traversing all files and directories under dir
11.4.28.Traversing only directories under dir
11.4.29.Traversing only files under dir
11.4.30.Copying a Directory
11.4.31.Check if a directory is not empty
11.4.32.Getting the Current Working Directory
11.4.33.Get all files and folders under a certain folder and save them to a set
11.4.34.Recursively search a directory tree
11.4.35.Searches through the directory tree