common_helper/src/main/java/com/xiongyingqi/util/FileSystemUtils.java
public static void copyRecursively(File src, File dest) throws IOException {
        Assert.isTrue(src != null && (src.isDirectory() || src.isFile()), "Source File must denote a directory or file");
        Assert.notNull(dest, "Destination File must not be null");
        doCopyRecursively(src, dest);
    }
public static void copyRecursively(File src, File dest) throws IOException {
        Assert.isTrue(src != null && (src.isDirectory() || src.isFile()), "Source File must denote a directory or file");
        Assert.notNull(dest, "Destination File must not be null");
        doCopyRecursively(src, dest);
    }
Recursively copy the contents of the {@code src} file/directory
to the {@code dest} file/directory.

@param src  the source directory
@param dest the destination directory
@throws java.io.IOException in the case of I/O errors