Here you can find the source of copyFileR(File srcFile, File destDirectory)
private static void copyFileR(File srcFile, File destDirectory) throws IOException
//package com.java2s; /*// w ww . j ava 2 s. c o m * Copyright 2002-2010 The Rector and Visitors of the * University of Virginia. All rights reserved. * * 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; public class Main { private static void copyFileR(File srcFile, File destDirectory) throws IOException { File destFile = new File(destDirectory.getAbsolutePath() + File.separator + srcFile.getName()); if (srcFile.isDirectory()) { destFile.mkdir(); File[] fileList = srcFile.listFiles(); for (int i = 0; i < fileList.length; i++) { File file = fileList[i]; copyFileR(file, destFile); } } else { copyFile(srcFile, destFile); } } public static void copyFile(File srcFile, File destFile, boolean recursive) throws IOException { if (recursive) { if (!destFile.isDirectory()) { throw new IOException("Destination must be a directory."); } copyFileR(srcFile, destFile); } else { copyFile(srcFile, destFile); } } private static void copyFile(File srcFile, File destFile) throws IOException { File testFile = destFile.getParentFile(); if (testFile.exists() == false) { testFile.mkdirs(); } FileInputStream srcStream = null; FileOutputStream destStream = null; srcStream = new FileInputStream(srcFile); destStream = new FileOutputStream(destFile); byte[] buf = new byte[65535]; int bytesRead; while (true) { bytesRead = srcStream.read(buf); if (bytesRead == -1) { break; } else { destStream.write(buf, 0, bytesRead); } } } }