Java Directory Copy copyDirectory(File source, File destination)

Here you can find the source of copyDirectory(File source, File destination)

Description

This is a recursive directory copy function.

License

Open Source License

Parameter

Parameter Description
source The source file to copy.
destination The location of where the source file will end up.

Exception

Parameter Description
IOException A problem happened while copying the source file to the destination.

Declaration

public static void copyDirectory(File source, File destination) throws IOException 

Method Source Code


//package com.java2s;
/*/*  www .j  a v a2 s . com*/
 * The MIT License
 * 
 * Copyright (c) 2008, The Codehaus
 * 
 * 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.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class Main {
    /**
     * This is a recursive directory copy function.
     * 
     * @param source The source file to copy.
     * @param destination The location of where the source file will end up.
     * @throws IOException A problem happened while copying the source file to the destination.
     */
    public static void copyDirectory(File source, File destination) throws IOException {
        if (source.isDirectory()) {
            if (!destination.exists()) {
                destination.mkdir();
            }

            String[] contents = source.list();
            for (int i = 0; i < contents.length; i++) {
                copyDirectory(new File(source, contents[i]), new File(destination, contents[i]));
            }
        } else {
            if (destination.isDirectory()) {
                copyFile(source, new File(destination, source.getName()));
            } else {
                copyFile(source, destination);
            }
        }
    }

    /**
     * Copy a single file or directory from one location to another.
     * 
     * @param source The source file to copy.
     * @param destination How and where the source file will end up.
     * @throws IOException There was a problem copying the file from the source to the destination.
     */
    public static void copyFile(File source, File destination) throws IOException {
        InputStream istream = new FileInputStream(source);
        OutputStream ostream = new FileOutputStream(destination);

        BufferedInputStream oBuffInputStream = new BufferedInputStream(istream);

        int length;
        byte[] bytes = new byte[1024];
        while ((length = oBuffInputStream.read(bytes)) > 0) {
            ostream.write(bytes, 0, length);
        }
        istream.close();
        ostream.close();
    }
}

Related

  1. copyDirectory(File file, File folderDestino)
  2. copyDirectory(File from, File to)
  3. copyDirectory(File inDir, File outDir)
  4. copyDirectory(File inDir, File outDir)
  5. copyDirectory(File inputFolder, File outputFolder)
  6. copyDirectory(File source, File destination)
  7. copyDirectory(File source, File destination)
  8. copyDirectory(File source, File destination)
  9. copyDirectory(File source, File destination, boolean overwrite)