20.27.2. 使用 sortBy 的排序
Camel 支持可插拔排序策略。此策略是使用 文件 语言来配置排序。sortBy
选项配置如下:
sortBy=group 1;group 2;group 3;...
其中,每个组用分号隔开。在简单情况下,您只使用一个组,因此一个简单的示例可能是:
sortBy=file:name
这会根据文件名对顺序排序,您可以 反转顺序:
到组中,因此排序现在为 Z.A:
sortBy=reverse:file:name
由于我们具有 文件 语言的完整功能,我们可以使用某些其他参数,因此如果我们想要根据文件系统的大小排序:
sortBy=file:length
您可以将 配置为忽略大小写,使用 ignoreCase:
进行字符串比较,因此,如果要使用文件名排序,但忽略大小写,则使用以下命令:
sortBy=ignoreCase:file:name
您可以组合忽略的大小写和反向,但必须首先指定反向:
sortBy=reverse:ignoreCase:file:name
在以下示例中,我们希望按最后修改的文件排序,因此我们:
sortBy=file:modified
然后,我们想要将名称作为 2 个选项进行分组,这样具有相同修改的文件根据名称排序:
sortBy=file:modified;file:name
在这里是否有问题,您能否发现它?修改后的文件时间戳太大,不像毫秒一样,如果我们只想按日期排序,则按名称排序,那么将怎么办?
此外,我们拥有真正有效的 文件 语言,我们可以使用支持模式的日期命令。因此,这可以作为:
sortBy=date:file:yyyyMMdd;file:name
是的,这非常强大,通过您可以按组反转的方式说得很强大,因此我们可以反转文件名:
sortBy=date:file:yyyyMMdd;reverse:file:name