Description
copy a full folder recursively
License
Open Source License
Parameter
Parameter | Description |
---|
from | a parameter |
to | a parameter |
Exception
Parameter | Description |
---|
IOException | an exception |
Declaration
public static void copyFolder(final File from, final File to) throws IOException
Method Source Code
//package com.java2s;
/* /*w w w. ja v a 2 s . c o m*/
* The MIT License
*
* Copyright 2016 Benny Lutati.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
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.nio.channels.FileChannel;
public class Main {
/**
* copy a full folder recursively
* @param from
* @param to
* @throws IOException
*/
public static void copyFolder(final File from, final File to) throws IOException {
assert !to.exists() || to.isDirectory();
if (!to.exists()) {
to.mkdirs();
}
if (!from.isDirectory()) {
copy(from.getAbsolutePath(), new File(to, from.getName()).getAbsolutePath());
} else {
final File newDestDir = new File(to, from.getName());
if (!newDestDir.exists() && !newDestDir.mkdir()) {
throw new IOException("cannot write folder " + newDestDir.getAbsolutePath());
}
for (final File child : from.listFiles()) {
copyFolder(child, newDestDir);
}
}
}
public static void copy(String source, String destination) throws IOException {
File s = new File(source);
File d = new File(destination);
FileInputStream ss = new FileInputStream(s);
FileOutputStream ds = new FileOutputStream(d);
FileChannel sourceFileChannel = ss.getChannel();
FileChannel destinationFileChannel = ds.getChannel();
long size = sourceFileChannel.size();
sourceFileChannel.transferTo(0, size, destinationFileChannel);
}
public static void copy(File from, File to) throws IOException {
if (from.exists()) {
byte[] all = new byte[32768];
int read = -1;
InputStream is = new FileInputStream(from);
OutputStream os = new FileOutputStream(to);
while ((read = is.read(all)) > 0) {
os.write(all, 0, read);
}
is.close();
os.close();
}
}
}
Related
- copyFolder(File sourceFolder, File destinationFolder)
- copyFolder(File sourceFolder, File destinationFolder, List blacklist)
- copyFolder(File src, File dest)
- copyFolder(File src, File dest)
- copyFolder(File src, File dst, FilenameFilter filter)
- copyFolder(String path, String resultPath)
- copyFolderNio(String oldpathall, String newpath)
- copyFolders(File sourceFolder, File destFolder)