6 public class FileCopier {
7 protected static final int FILE_COPY_BUFFER_SIZE = 65536;
9 protected FileCopier() {
12 public static void copyFile(File aSourceFile, File aDestinationFile) throws IOException {
13 FileInputStream inputStream;
14 FileOutputStream outputStream;
16 byte[] buffer = new byte[FILE_COPY_BUFFER_SIZE];
18 inputStream = new FileInputStream(aSourceFile);
20 File directory = new File(aDestinationFile.getParent());
21 if (directory!=null && !directory.exists()){
24 outputStream = new FileOutputStream(aDestinationFile);
27 nrBytesRead = inputStream.read(buffer);
29 outputStream.write(buffer, 0, nrBytesRead);
31 while (nrBytesRead>=0);
42 public static void copyDirectory(File aSourceDirectory, File aDestinationDirectory) throws IOException {
46 File[] files = aSourceDirectory.listFiles();
48 if (!aDestinationDirectory.exists())
49 aDestinationDirectory.mkdirs();
51 for (i=0; i<files.length; i++) {
52 sourceFile = files[i];
53 destinationFile=new File(aDestinationDirectory, sourceFile.getName());
54 if (sourceFile.isDirectory()) {
55 if (!destinationFile.exists())
56 destinationFile.mkdir();
57 copyDirectory(sourceFile, destinationFile);
60 copyFile(sourceFile, destinationFile);
65 public static void copy(File aSource, File aDestination) throws IOException {
66 if (aSource.isDirectory()) {
67 copyDirectory(aSource, aDestination);
69 else if (aDestination.isDirectory()) {
70 copyFile(aSource, new File(aDestination, aSource.getName()));
73 copyFile(aSource, aDestination);