Java Directory Copy nio copyDirectory(File source, File destination)

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

Description

copy Directory

License

Open Source License

Declaration

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

Method Source Code

//package com.java2s;
//License from project: Open Source License 

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;

public class Main {
    public static final void copyDirectory(File source, File destination)
            throws IOException {
        if (!source.isDirectory()) {
            throw new IllegalArgumentException("Source ("
                    + source.getPath() + ") must be a directory.");
        }//from   www  . j  a  v  a2 s  .com

        if (!source.exists()) {
            throw new IllegalArgumentException("Source directory ("
                    + source.getPath() + ") doesn't exist.");
        }

        if (destination.exists()) {
            throw new IllegalArgumentException("Destination ("
                    + destination.getPath() + ") exists.");
        }

        destination.mkdirs();
        File[] files = source.listFiles();

        for (File file : files) {
            if (file.isDirectory()) {
                copyDirectory(file, new File(destination, file.getName()));
            } else {
                copyFile(file, new File(destination, file.getName()));
            }
        }
    }

    public static final void copyFile(File source, File destination)
            throws IOException {
        FileChannel sourceChannel = new FileInputStream(source)
                .getChannel();
        FileChannel targetChannel = new FileOutputStream(destination)
                .getChannel();
        sourceChannel.transferTo(0, sourceChannel.size(), targetChannel);
        sourceChannel.close();
        targetChannel.close();
    }
}

Related

  1. copyDirectiory(String sourceDir, String targetDir)
  2. copyDirectory(File in, File out)
  3. copyDirectory(File in, File out)
  4. copyDirectory(File source, File dest, CopyOption... options)
  5. copyDirectory(File source, File destination)
  6. copyDirectory(File source, File destination)
  7. copyDirectory(File source, File destination, boolean recursive)
  8. copyDirectory(File source, File target, boolean acceptFileInUseError)
  9. copyDirectory(File sourceDir, File destinationDir)