gpt4 book ai didi

在 Ant 中按数字对文件集排序

转载 作者:行者123 更新时间:2023-12-02 06:00:43 25 4
gpt4 key购买 nike

我有一个这样的文件夹结构:

wsdl/v1,----,v11

我需要将其所有文件复制到一个名为“latestVersion”的新文件夹,并且需要保持从 v1 到 v11 的复制顺序。为此,我需要在复制时按名称对目录进行排序。我的代码是这样的:

<copy todir="${srcdist.layout.dir}/etc/wsdl/latestVersion" flatten="true" overwrite="true" verbose="true">
<sort>
<fileset dir="../../sdk/etc/wsdl">
<include name="**/*.wsdl"/>
</fileset>
</sort>
</copy>

我希望复制从 v1 开始并在 v11 结束。然而,它是这样复制的:

v1,v10,v11,v2,v3,v4,v5,v6,v7,v8,v9

相反,我如何让 Ant 进行复制:

v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11

最佳答案

Ant 排序正确,因为按字典顺序 v10 位于 v2 之前(排序比较器逐一比较字符)。

为了在 v11 之前拥有 v2,您必须编写一个自定义比较器(documentation 中的内置比较器列表是不够的)。换句话说,您必须编写一个实现 org.apache.tools.ant.types.resources.comparators.ResourceComparator 类的类,将您的类添加到类路径中并将其声明为 typedef你的 Ant 脚本:

<typedef name="my_custom_sort" classname="com.example.MyCustomResourceComparator" />

关于在 Ant 中按数字对文件集排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32758304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com