Here you can find the source of tryCopyFile(File sourceLocation, File targetLocation)
public static boolean tryCopyFile(File sourceLocation, File targetLocation)
//package com.java2s; /*/* w w w . jav a 2 s. co m*/ * This file is part of UltimateCore, licensed under the MIT License (MIT). * * Copyright (c) Bammerbom * * 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.*; import java.nio.channels.FileChannel; import java.util.*; public class Main { public static boolean tryCopyFile(File sourceLocation, File targetLocation) { try { copyFile(sourceLocation, targetLocation); return true; } catch (IOException ex) { ex.printStackTrace(); } return false; } public static void copyFile(File sourceLocation, File targetLocation) throws IOException { if (sourceLocation.isDirectory()) { if (!targetLocation.exists()) { targetLocation.mkdirs(); } for (File subFile : listFiles(sourceLocation)) { String subFileName = subFile.getName(); copyFile(new File(sourceLocation, subFileName), new File(targetLocation, subFileName)); } } else { FileInputStream input = null; FileOutputStream output = null; FileChannel inputChannel = null; FileChannel outputChannel = null; try { input = new FileInputStream(sourceLocation); inputChannel = input.getChannel(); output = createOutputStream(targetLocation); outputChannel = output.getChannel(); long transfered = 0L; long bytes = inputChannel.size(); while (transfered < bytes) { transfered += outputChannel.transferFrom(inputChannel, 0L, inputChannel.size()); outputChannel.position(transfered); } } finally { if (inputChannel != null) { inputChannel.close(); } else if (input != null) { input.close(); } if (outputChannel != null) { outputChannel.close(); } else if (output != null) { output.close(); } } } } public static Iterable<File> listFiles(File directory) { return Arrays.asList(directory.listFiles()); } public static FileOutputStream createOutputStream(File file) throws IOException, SecurityException { return createOutputStream(file, false); } public static FileOutputStream createOutputStream(File file, boolean append) throws IOException, SecurityException { File directory = file.getAbsoluteFile().getParentFile(); if ((!directory.exists()) && (!directory.mkdirs())) { throw new IOException("Failed to create the parent directory of the file"); } if ((!file.exists()) && (!file.createNewFile())) { throw new IOException("Failed to create the new file to write to"); } return new FileOutputStream(file, append); } }