【问题标题】:How to get the name of the folders from the file name in Ruby?如何从 Ruby 中的文件名中获取文件夹的名称?
【发布时间】:2021-10-31 19:01:01
【问题描述】:

抱歉,因为我不喜欢 Ruby 编码,我正在编写代码以从文件路径中获取结构的文件夹名称。

例如,如果我有一个文件在 E:/aaa/bbb/ccc/filename.jpg

如何获取文件夹名称 aaabbbccc?我只知道父文件夹ccc可以使用File.nakeddir,但是对于aaa和bbb,如何获取呢?

谢谢!

【问题讨论】:

标签: ruby


【解决方案1】:

Ruby 标准库中的Pathname class 可用于将路径分解为其组成部分:

require 'pathname'
path = Pathname.new("E:/aaa/bbb/ccc/filename.jpg")
path.dirname.each_filename.drop(1) # ["aaa", "bbb", "ccc"]

【讨论】:

  • drop(1) 也删除了aaadrop(1) 这里不需要。
  • @Rajagopalan 不正确 - 它删除了 E:
  • 不!那是错误的。您使用的是哪个 Ruby 版本? path.dirname.each_filename.to_a 返回["aaa", "bbb", "ccc"]
  • 这只是在 ruby​​ 2.7.0p0 上测试过
  • 我认为他们已经从 2.7.1 改变了。因为我在2.7.13.0 测试过。
猜你喜欢
  • 2010-12-17
  • 1970-01-01
  • 2016-12-29
  • 2012-05-23
  • 2015-10-17
  • 2014-03-06
  • 2020-01-30
  • 2016-01-27
  • 1970-01-01
相关资源
最近更新 更多