Java如何将目录及其所有内容复制到另一个目录?

要复制带有整个子目录和文件的目录,我们可以使用Apache Commons IO提供的便捷方法FileUtils.copyDirectory()。此方法接受两个参数,源目录和目标目录。源目录应该存在,而如果目标目录不存在,则会创建源目录。

package org.nhooo.example.commons.io;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;

public class DirectoryCopy {
    public static void main(String[] args) {
        // 要复制的现有目录。
        String source = "C:/Demo/source";
        File srcDir = new File(source);

        //要复制到的目标目录。这个目录
        // 不存在,将在复制期间创建
        // 目录过程。
        String destination = "C:/Demo/target";
        File destDir = new File(destination);

        try {
            // 将源目录复制到目标目录
            //包括其子目录和文件。什么时候
            // 目标目录不存在,它将
            //被创建。此复制过程还保留了
            // 文件的日期信息。
            FileUtils.copyDirectory(srcDir, destDir);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Maven依赖

<!-- http://repo1.maven.org/maven2/commons-io/commons-io/2.6/commons-io-2.6.jar -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>