Description
This methods copies a directory with all its files.
License
Open Source License
Parameter
Parameter | Description |
---|
srcPath | a parameter |
dstPath | a parameter |
Exception
Parameter | Description |
---|
IOException | an exception |
Declaration
public static void copyDirectoryWithContents(final File srcPath, final File dstPath) throws IOException
Method Source Code
//package com.java2s;
/*********************************************************************************
* Ephesoft is a Intelligent Document Capture and Mailroom Automation program
* developed by Ephesoft, Inc. Copyright (C) 2015 Ephesoft Inc.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License version 3 as published by the
* Free Software Foundation with the addition of the following permission added
* to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
* IN WHICH THE COPYRIGHT IS OWNED BY EPHESOFT, EPHESOFT DISCLAIMS THE WARRANTY
* OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
*
* 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 Affero General Public License for more
* details. //from w ww . jav a 2 s . c om
*
* You should have received a copy of the GNU Affero General Public License along with
* this program; if not, see http://www.gnu.org/licenses or write to the Free
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*
* You can contact Ephesoft, Inc. headquarters at 111 Academy Way,
* Irvine, CA 92617, USA. or at email address info@ephesoft.com.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "Ephesoft" logo.
* If the display of the logo is not reasonably feasible for
* technical reasons, the Appropriate Legal Notices must display the words
* "Powered by Ephesoft".
********************************************************************************/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Arrays;
public class Main {
/**
* This methods copies a directory with all its files.
*
* @param srcPath
* @param dstPath
* @throws IOException
*/
public static void copyDirectoryWithContents(final File srcPath, final File dstPath) throws IOException {
if (srcPath.isDirectory()) {
if (!dstPath.exists()) {
dstPath.mkdir();
}
final String[] files = srcPath.list();
if (files.length > 0) {
Arrays.sort(files);
for (int index = 0; index < files.length; index++) {
copyDirectoryWithContents(new File(srcPath, files[index]), new File(dstPath, files[index]));
}
}
} else {
if (srcPath.exists()) {
final InputStream input = new FileInputStream(srcPath);
final OutputStream out = new FileOutputStream(dstPath);
// Transfer bytes from in to out
final byte[] buf = new byte[1024];
int len = input.read(buf);
while (len > 0) {
out.write(buf, 0, len);
len = input.read(buf);
}
if (input != null) {
input.close();
}
if (out != null) {
out.close();
}
}
}
}
/**
* This methods copies a directory with all its files.
*
* @param srcPath
* @param dstPath
* @throws IOException
*/
public static void copyDirectoryWithContents(final String sSrcPath, final String sDstPath) throws IOException {
final File srcPath = new File(sSrcPath);
final File dstPath = new File(sDstPath);
if (srcPath.isDirectory()) {
if (!dstPath.exists()) {
dstPath.mkdir();
}
final String[] files = srcPath.list();
if (files.length > 0) {
// Arrays.sort(files);
for (int index = 0; index < files.length; index++) {
copyDirectoryWithContents(new File(srcPath, files[index]), new File(dstPath, files[index]));
}
}
} else {
if (srcPath.exists()) {
final InputStream input = new FileInputStream(srcPath);
final OutputStream out = new FileOutputStream(dstPath);
// Transfer bytes from in to out
final byte[] buf = new byte[1024];
int len = input.read(buf);
while (len > 0) {
out.write(buf, 0, len);
len = input.read(buf);
}
if (input != null) {
input.close();
}
if (out != null) {
out.close();
}
}
}
}
}
Related
- copyDirectoryContents(File source, File destination)
- copyDirectoryContents(File src, File target)
- copyDirectoryContents(File srcDir, File dstDir)
- copyDirectoryFromJar(String jarName, String srcDir, File tmpDir)
- copyDirectoryTree(File copyFrom, File copyTo)