Here you can find the source of copyDirectory(File src, File dest, boolean force)
public static void copyDirectory(File src, File dest, boolean force) throws IOException
//package com.java2s; /*//from w w w . ja v a 2 s . c o m * Copyright (C) 2017 CenturyLink, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ 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 copyDirectory(File src, File dest, boolean force) throws IOException { if (!src.exists()) throw new IOException("Source directory does not exist: " + src); if (src.isDirectory()) { if (!dest.exists()) { if (!dest.mkdir()) throw new IOException("Unable to create directory: " + dest); } for (String file : src.list()) { File srcFile = new File(src, file); File destFile = new File(dest, file); copyDirectory(srcFile, destFile, force); } } else { if (force || src.lastModified() > dest.lastModified()) { InputStream in = null; OutputStream out = null; try { in = new FileInputStream(src); out = new FileOutputStream(dest); byte[] buffer = new byte[1024]; int length; while ((length = in.read(buffer)) > 0) out.write(buffer, 0, length); } finally { if (in != null) in.close(); if (out != null) out.close(); } } } } }