加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为什么Ruby似乎随机访问目录中的文件?

发布时间:2020-12-16 21:38:59 所属栏目:百科 来源:网络整理
导读:这是设计的吗? 这是代码: class FileRenamer def RenameFiles(folder_path) files = Dir.glob(folder_path + "/*") endendputs "Renaming files..."renamer = FileRenamer.new()files = renamer.RenameFiles("/home/papuccino1/Desktop/Test")puts filespu
这是设计的吗?

这是代码:

class FileRenamer
    def RenameFiles(folder_path)    
        files = Dir.glob(folder_path + "/*")
    end
end

puts "Renaming files..."

renamer = FileRenamer.new()
files = renamer.RenameFiles("/home/papuccino1/Desktop/Test")
puts files

puts "Renaming complete."

它似乎是取文件是随机顺序,而不是它们在Nautilus中显示.

这是设计的吗?我只是好奇.

解决方法

每次在特定操作系统上的顺序应该相同,但是在操作系统中它们是不同的.

在不同的操作系统中,不能依赖行为或Dir.glob.不确定这是否是设计的,而是文件系统的人工制品.

在Windows和Linux上,结果按层次结构排序,然后按字母顺序排序;在Mac OS X上,结果按字母顺序排序.

您可以通过对结果调用sort来减轻效果,例如:

files = Dir.glob("./*").sort

或者如果您希望它不区分大小写,或许:

files = Dir.glob("./*").sort {|a,b| a.upcase <=> b.upcase}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读