为什么Ruby的文件相关类型是基于字符串的(字符串类型)?
发布时间:2020-12-17 02:56:56 所属栏目:百科 来源:网络整理
导读:例如Dir.entries返回字符串数组与包含File或Dir实例的数组. 关于Dir和File类型的大多数方法.相比之下,这些情况是动态的. 没有Dir#文件夹或Dir#文件 – 而是我明确地说 遍历Dir.entries 为其构建路径(File.expand_path) 每个物品 检查File.directory? 简单的
例如Dir.entries返回字符串数组与包含File或Dir实例的数组.
关于Dir和File类型的大多数方法.相比之下,这些情况是动态的. 没有Dir#文件夹或Dir#文件 – 而是我明确地说 >遍历Dir.entries 简单的用例如获取此目录中的所有.svg文件似乎需要许多箍/循环/检查.我使用Ruby是错误的还是Ruby的这个方面看起来非常不重要? 解决方法
根据您的需要,
File 或
Dir 可能会很好.
当你需要链接命令并且(理所当然地)认为只使用带有字符串参数的类方法时,你可以使用 例子 Dirs和文件 require 'pathname' my_folder = Pathname.new('./') dirs,files = my_folder.children.partition(&:directory?) # dirs is now an Array of Pathnames pointing to subdirectories of my_folder # files is now an Array of Pathnames pointing to files inside my_folder 所有.svg文件 如果由于某种原因可能存在扩展名为.svg的文件夹,则只能过滤Pathname.glob返回的路径名: svg_files = Pathname.glob("folder/","*.svg").select(&:file?) 如果你想要一个特定的语法: class Pathname def files children.select(&:file?) end end aDir = Pathname.new('folder/') p aDir.files.find_all{ |f| f.extname == '.svg' } 迭代目录树
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |