From fbf8dcd8910862b4543422e9bc0608be81751175 Mon Sep 17 00:00:00 2001 From: zapata Date: Mon, 4 Nov 2002 23:13:11 +0000 Subject: [PATCH] CopyDir now also copies files --- source/mir/producer/DirCopyingProducerNode.java | 4 +++- source/mir/util/FileCopier.java | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/source/mir/producer/DirCopyingProducerNode.java b/source/mir/producer/DirCopyingProducerNode.java index 13d13b3c..a9f5509f 100755 --- a/source/mir/producer/DirCopyingProducerNode.java +++ b/source/mir/producer/DirCopyingProducerNode.java @@ -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)); } diff --git a/source/mir/util/FileCopier.java b/source/mir/util/FileCopier.java index e4442deb..36c59491 100755 --- a/source/mir/util/FileCopier.java +++ b/source/mir/util/FileCopier.java @@ -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 -- 2.11.0