如何使用 Ant 将多个目录中的所有文件复制到一个目录中
How to copy all files from multiple directories into a single directory using Ant
我的文件夹结构类似于
ant/
test1/
images/
1.png ...
test2/
images/
121.png ...
test3/
images/
173.gif ...
我想从不同的不同图片文件夹中读取所有图片,并将它们放入ant文件夹下的一个图片文件夹中。
这段代码是我写的
<project name = "java-ant project" default = "copy-file">
<target name="copy-file">
<copy todir="D:/ant/images">
<fileset includes="**/images/" dir="D:/ant/"/></copy>
</target>
</project>
这会成功复制到图像文件夹中,但会保留源文件夹结构。
喜欢:
ant/
images/
test1/
images/
1.jpg ...
test2/
images/
121.jpg ...
我想要的输出是:
ant/
images/
1.jpg
121.png
173.gif
...
你可以这样使用:
<property name="src.dir" value="D:/ant/"/>
<property name="dest.dir" value="D:/ant/images"/>
<copy todir="${dest.dir}">
<fileset dir="${src.dir}" includes="**/images/*">
<type type="file"/>
</fileset>
<mapper type="flatten" />
</copy>
flatten mapper是关键部分
type="file"
元素确保只复制文件。如果没有它,您可能还会看到复制的(空)目录。
我的文件夹结构类似于
ant/
test1/
images/
1.png ...
test2/
images/
121.png ...
test3/
images/
173.gif ...
我想从不同的不同图片文件夹中读取所有图片,并将它们放入ant文件夹下的一个图片文件夹中。
这段代码是我写的
<project name = "java-ant project" default = "copy-file">
<target name="copy-file">
<copy todir="D:/ant/images">
<fileset includes="**/images/" dir="D:/ant/"/></copy>
</target>
</project>
这会成功复制到图像文件夹中,但会保留源文件夹结构。
喜欢:
ant/
images/
test1/
images/
1.jpg ...
test2/
images/
121.jpg ...
我想要的输出是:
ant/
images/
1.jpg
121.png
173.gif
...
你可以这样使用:
<property name="src.dir" value="D:/ant/"/>
<property name="dest.dir" value="D:/ant/images"/>
<copy todir="${dest.dir}">
<fileset dir="${src.dir}" includes="**/images/*">
<type type="file"/>
</fileset>
<mapper type="flatten" />
</copy>
flatten mapper是关键部分
type="file"
元素确保只复制文件。如果没有它,您可能还会看到复制的(空)目录。