如何使用Ant将目录从一个位置复制到另一个位置?

sjw*_*jwb 5 ant

我希望将目录从一个位置复制到另一个位置.但是,在查看"copy"和"copyDir"(不推荐使用)之后,默认情况下,Ant似乎只将一个位置的内容复制到另一个位置,而不是实际目录(以及其中的所有内容).

所以,作为一个例子,我有以下内容:

./Foo/test.txt
Run Code Online (Sandbox Code Playgroud)

我应用以下Ant:

 <copy todir="./build">
    <fileset dir="./Foo"/>
 </copy>
Run Code Online (Sandbox Code Playgroud)

结果如下:

./build/test.txt
Run Code Online (Sandbox Code Playgroud)

而我希望它是:

./build/Foo/test.txt
Run Code Online (Sandbox Code Playgroud)

希望有道理.我怎样才能做到这一点?

Mar*_*son 3

要保留结构,您需要复制父文件夹。复制命令中有一个 flatten 选项,但默认为 false。您还可以创建所需的目录结构,然后在文件级别直接复制到新文件夹中。

这是参考文献中的相关行:

当使用 <fileset> 选择要复制的文件时,必须设置 todir 属性。位于 <fileset> 基目录下的文件将被复制到与 <fileset> 基目录相对路径匹配的目标目录下的目录,除非 flatten 属性设置为 true。

问题在于,您选择的是 Foo 文件夹,因此您只能获取其下的文件,您需要选择 Foo 上方的文件夹才能获取 ~/Foo/file.txt 结构所在的文件集。