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(),