From 565b600d95c3b4c47ad7f7a78cd4c5f0c477ce18 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Thu, 3 Aug 2000 09:43:18 +0000 Subject: [PATCH] Added flatten attribute to . Submitted by: Jeff Martin git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@267879 13f79535-47bb-0310-9956-ffa450edef68 --- docs/index.html | 7 +++++++ src/main/org/apache/tools/ant/taskdefs/Copydir.java | 12 +++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/index.html b/docs/index.html index dd16c719e..df277669e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -855,6 +855,13 @@ this attribute has been replaced by the excludes attribute.

the copy No + + flatten + ignore directory structure of source directory, + copy all files into a single directory - specified by the dest + attribute (default is false). + No + forceoverwrite overwrite existing files even if the destination diff --git a/src/main/org/apache/tools/ant/taskdefs/Copydir.java b/src/main/org/apache/tools/ant/taskdefs/Copydir.java index 393a2b355..6d6292d3b 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Copydir.java +++ b/src/main/org/apache/tools/ant/taskdefs/Copydir.java @@ -70,6 +70,7 @@ public class Copydir extends MatchingTask { private File srcDir; private File destDir; private boolean filtering = false; + private boolean flatten = false; private boolean forceOverwrite = false; private Hashtable filecopyList = new Hashtable(); @@ -85,6 +86,10 @@ public class Copydir extends MatchingTask { filtering = Project.toBoolean(filter); } + public void setFlatten(boolean flatten) { + this.flatten = flatten; + } + public void setForceoverwrite(String force) { forceOverwrite = Project.toBoolean(force); } @@ -127,7 +132,12 @@ public class Copydir extends MatchingTask { for (int i = 0; i < files.length; i++) { String filename = files[i]; File srcFile = new File(from, filename); - File destFile = new File(to, filename); + File destFile; + if (flatten) { + destFile = new File(to, new File(filename).getName()); + } else { + destFile = new File(to, filename); + } if (forceOverwrite || (srcFile.lastModified() > destFile.lastModified())) { filecopyList.put(srcFile.getAbsolutePath(),