如何得到Dir['*']
包括点文件,例如.gitignore
, 但不是.
and ..
?
即,有没有更好的方法可以做到:
`ls -A`.split "\n"
也许与Dir
?以下解决方案很接近,但都包括.
& ..
:
Dir.glob('*', File::FNM_DOTMATCH)
Dir['{.*,*}']
因此,以下工作:
Dir.glob('*', File::FNM_DOTMATCH) - ['.', '..']
但是,还有更好的方法吗?
我想知道这是为了修复 a 的第 9 行流星自制配方 https://gist.github.com/3072321#file_meteor.rb.
你不能与Dir[] https://ruby-doc.org/core/Dir.html#method-c-5B-5D,但你可以用Dir.glob https://ruby-doc.org/core/Dir.html#method-c-glob, which Dir[]
calls:
Dir.glob("*", File::FNM_DOTMATCH)
你可以摆脱.
& ..
easily:
Dir.glob("*", File::FNM_DOTMATCH).tap { |a| a.shift(2) }
但我认为最好还是坚持原来的方式:
Dir.glob("*", File::FNM_DOTMATCH) - %w[. ..]
(以及其他方式)
但是,如果您不需要比*
, Dir#children https://ruby-doc.org/core/Dir.html#method-c-children可能就是您所需要的(总是可以进一步filter https://ruby-doc.org/core/Array.html#method-i-filter/grep https://ruby-doc.org/core/Enumerable.html#method-i-grep如果需要更多过滤,则为结果):
Dir.children('.')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)