按目录深度在单个目录中对文件名进行排序

时间:2015-06-10 00:07:48

标签: arrays ruby

使用Dir.glob查找目录及其子目录中具有相同名称的所有文件后,是否有办法按子目录深度对此结果数组进行排序,以便当前目录位于顶部最低的子目录是数组中的最后一个元素吗?

1 个答案:

答案 0 :(得分:2)

Dir.glob将文件名作为字符串数组返回,字符串可按其中/的计数进行排序,如下所示:

Dir.glob(....).sort{|a, b| a.count('/') <=> b.count('/')}

对于反向排序顺序:

Dir.glob(....).sort{|a, b| b.count('/') <=> a.count('/')}