gpt4 book ai didi

ruby - 为什么 ruby​​ Pathname#basename 返回前缀为 "Pathname:"的文件名?

转载 作者:数据小太阳 更新时间:2023-10-29 07:52:42 26 4
gpt4 key购买 nike

我想获取目录中除隐藏文件(名称以点开头的文件)之外的所有文件:

@files = Pathname.new('.').children.select do |file|
file.basename[0] != '.'
end

我不能那样做,因为#basename 以"<#Pathname:.envrc>" 的形式返回字符串.所以我需要做到file.basename =~ '#<Pathname:.' , 这对我来说似乎很奇怪。

为什么他们用“路径名”作为前缀?

最佳答案

看OP的回答,我想,可以写成

@files = Pathname.new('.').children(false).reject do |file|
file.to_s.start_with? '.'
end

文档children是说 - 如果将 with_directory 设置为 false,则返回的路径名将仅包含文件名。 这意味着,我们将获取所有基本名称作为 Pathname 对象,如 路径名:.git路径名:English.rb。现在应用#to_s,我们将得到'.git''English.rb'。因此,现在我们可以在其上使用 String#start_with? 方法来测试它是否以 . 开头

关于ruby - 为什么 ruby​​ Pathname#basename 返回前缀为 "Pathname:"的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24127429/

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