Here you can find the source of copyDirectory(final String sourceDir, final String targetDir)
Parameter | Description |
---|---|
sourceDir | a parameter |
targetDir | a parameter |
Parameter | Description |
---|---|
IOException | an exception |
protected static void copyDirectory(final String sourceDir, final String targetDir) throws IOException
//package com.java2s; /**//from ww w. j ava2 s.com * Copyright (C) 2011 BonitaSoft S.A. * BonitaSoft, 32 rue Gustave Eiffel - 38000 Grenoble * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2.0 of the License, or * (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Main { /** * Copy a directory * * @param sourceDir * @param targetDir * @throws IOException */ protected static void copyDirectory(final String sourceDir, final String targetDir) throws IOException { // new target folder new File(targetDir).mkdirs(); // get the file or folder of sorcefolder final File[] file = new File(sourceDir).listFiles(); for (int i = 0; i < file.length; i++) { if (file[i].isFile()) { final File sourceFile = file[i]; final File targetFile = new File( new File(targetDir).getAbsolutePath() + File.separator + file[i].getName()); copyFile(sourceFile, targetFile); } if (file[i].isDirectory()) { final String dir1 = sourceDir + File.separator + file[i].getName(); final String dir2 = targetDir + File.separator + file[i].getName(); copyDirectory(dir1, dir2); } } } /** * Copy file * * @param sourceFile * @param targetFile * @throws IOException */ protected static void copyFile(final File sourceFile, final File targetFile) throws IOException { BufferedInputStream inBuff = null; BufferedOutputStream outBuff = null; FileInputStream input = null; FileOutputStream output = null; try { input = new FileInputStream(sourceFile); inBuff = new BufferedInputStream(input); output = new FileOutputStream(targetFile); outBuff = new BufferedOutputStream(output); final byte[] b = new byte[1024 * 5]; int len; while ((len = inBuff.read(b)) != -1) { outBuff.write(b, 0, len); } outBuff.flush(); } finally { if (inBuff != null) { inBuff.close(); } if (outBuff != null) { outBuff.close(); } if (output != null) { output.close(); } if (input != null) { input.close(); } } } }