Here you can find the source of copyDirectory(File inDir, File outDir)
public static void copyDirectory(File inDir, File outDir) throws IOException
//package com.java2s; /**//from ww w .j av a 2s . c om * Copyright 2014-2017 Functional Genomics Development Team, European Bioinformatics Institute * * 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. * * @author Mikhail Gostev <gostev@gmail.com> **/ 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 inDir, File outDir) throws IOException { if (!inDir.isDirectory()) { return; } for (File f : inDir.listFiles()) { File outFile = new File(outDir, f.getName()); if (f.isDirectory()) { outFile.mkdirs(); copyDirectory(f, outFile); } else { copyFile(f, outFile); } } } public static void copyFile(File inf, File outf) throws IOException { byte[] buf = new byte[64 * 1024]; try (InputStream fis = new FileInputStream(inf); OutputStream fos = new FileOutputStream(outf)) { int nread; while ((nread = fis.read(buf)) > 0) { fos.write(buf, 0, nread); } } } }