我希望将目录从一个位置复制到另一个位置。但是,在查看“copy”和“copyDir”(不推荐使用)之后,默认情况下,Ant似乎只将一个位置的内容复制到另一个位置,而不是实际目录(以及其中的所有内容)。
因此,作为一个例子,我有以下内容:
./Foo/test.txt
我应用以下Ant:
<copy todir="./build">
<fileset dir="./Foo"/>
</copy>
结果如下:
./build/test.txt
我希望它是:
./build/Foo/test.txt
希望这是有道理的。我怎么能这样做?
答案 0 :(得分:3)
要保留结构,您需要复制父文件夹。复制命令中有一个展平选项,但默认为false。您也可以创建所需的目录结构,然后在文件级别直接复制到新文件夹中。
以下是reference:
中的相关行当&lt; fileset&gt;用于选择要复制的文件, 必须设置todir属性。文件是 位于&lt; fileset&gt;的基目录下 将被复制到目标下的目录 目录匹配相对于基础的路径 &lt; fileset&gt;的目录,除非展平 attribute设置为true。
问题在于你正在拿起Foo文件夹,所以你只得到下的文件,你需要选择Foo上面的文件夹来获取文件集〜/ Foo / file.txt结构存在。
答案 1 :(得分:3)
这个怎么样:
<copy todir="./build">
<fileset dir=".">
<include name="Foo/**"/>
</fileset>
</copy>