java4all@1986 java. Powered by Blogger.

Copy file and directory

>> Monday, May 23, 2011

import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

//
FileUtils is a collection of routines for common file system operations.
public final class FileUtils {
public static final File CURRENT_DIR = new File(".");

/**
*
* Copies the first file or directory to the second file or directory.

*

* If the first parameter is a file and the second is a file, then the method
* copies the contents of the first file into the second. If the second file
* does not exist, it is created.

*

* If the first parameter is a file and the second is a directory, the file is
* copied to the directory, overwriting any existing copy.

*

* If the first parameter is a directory and the second is a directory, the
* first is copied underneath the second.

*

* If the first parameter is a directory and the second is a file name or does
* not exist, a directory with that name is created, and the contents of the
* first directory are copied there.
*
* @param source
* @param destination
*
* @throws IOException
*

    *
  • If the source does not exist.
  • *
  • If the user does not have permission to modify the
    * destination.
  • *
  • If the copy fails for some reason related to system I/O.
  • *

*
*/
public static void copy(File source, File destination) throws IOException {
if (source == null)
throw new NullPointerException("NullSource");

if (destination == null)
throw new NullPointerException("NullDestination");

if (source.isDirectory())
copyDirectory(source, destination);

else
copyFile(source, destination);
}

public static void copyDirectory(File source, File destination) throws IOException {
copyDirectory(source, destination, null);
}

public static void copyDirectory(File source, File destination, FileFilter filter)
throws IOException {
File nextDirectory = new File(destination, source.getName());

//
// create the directory if necessary...
//
if (!nextDirectory.exists() && !nextDirectory.mkdirs()) {
Object[] filler = { nextDirectory.getAbsolutePath() };
String message = "DirCopyFailed";
throw new IOException(message);
}

File[] files = source.listFiles();

//
// and then all the items below the directory...
//
for (int n = 0; n < files.length; ++n) {
if (filter == null || filter.accept(files[n])) {
if (files[n].isDirectory())
copyDirectory(files[n], nextDirectory, filter);

else
copyFile(files[n], nextDirectory);
}
}
}

public static void copyFile(File source, File destination) throws IOException {
//
// if the destination is a dir, what we really want to do is create
// a file with the same name in that dir
//
if (destination.isDirectory())
destination = new File(destination, source.getName());

FileInputStream input = new FileInputStream(source);
copyFile(input, destination);
}

public static void copyFile(InputStream input, File destination) throws IOException {
OutputStream output = null;

output = new FileOutputStream(destination);

byte[] buffer = new byte[1024];

int bytesRead = input.read(buffer);

while (bytesRead >= 0) {
output.write(buffer, 0, bytesRead);
bytesRead = input.read(buffer);
}

input.close();

output.close();
}

}

0 comments:

Post a Comment

FaceBook Login

HTML/JAVASCRIPT

HTML/JAVASCRIPT

HTML/JAVASCRIPT

HTML/JAVASCRIPT

Total Pageviews

STATCOUNTER

  © Blogger template Simple n' Sweet by Ourblogtemplates.com 2009

Back to TOP