CopyDir now also copies files
authorzapata <zapata>
Mon, 4 Nov 2002 23:13:11 +0000 (23:13 +0000)
committerzapata <zapata>
Mon, 4 Nov 2002 23:13:11 +0000 (23:13 +0000)
source/mir/producer/DirCopyingProducerNode.java
source/mir/util/FileCopier.java

index 13d13b3..a9f5509 100755 (executable)
@@ -51,12 +51,14 @@ public class DirCopyingProducerNode implements ProducerNode  {
   public void produce(Map aValueMap, String aVerb, PrintWriter aLogger) throws ProducerFailure {
     String source = "";
     String destination = "";
+    File sourceFile;
+    File destinationFile;
 
     try {
       source = ParameterExpander.expandExpression( aValueMap, sourceExpression );
       destination = ParameterExpander.expandExpression( aValueMap, destinationExpression );
       aLogger.println("Copying " + source + " into " + destination);
-      FileCopier.copyDirectory(
+      FileCopier.copy(
         new File(sourceBasePath, source),
         new File(destinationBasePath, destination));
     }
index e4442de..36c5949 100755 (executable)
@@ -17,6 +17,10 @@ public class FileCopier {
 
     inputStream = new FileInputStream(aSourceFile);
     try {
+      File directory = new File(aDestinationFile.getParent());
+        if (directory!=null && !directory.exists()){
+          directory.mkdirs();
+      }
       outputStream = new FileOutputStream(aDestinationFile);
       try {
         do {
@@ -58,4 +62,16 @@ public class FileCopier {
     }
   }
 
+  public static void copy(File aSource, File aDestination) throws IOException {
+    if (aSource.isDirectory()) {
+      copyDirectory(aSource, aDestination);
+    }
+    else if (aDestination.isDirectory()) {
+      copyFile(aSource, new File(aDestination, aSource.getName()));
+    }
+    else {
+      copyFile(aSource, aDestination);
+    }
+  }
+
 }
\ No newline at end of file