我说我有这条道路:
path = "D:\Google Drive\Samples\Black Octopus Sound\Leviathan\Drums - Kicks\Lev_Kick_A_003.wav"
从string/path
获取父路径的智能和干净方法是什么?即:
D:\Google Drive\Samples\Black Octopus Sound\Leviathan\Drums - Kicks\
答案 0 :(得分:2)
使用Pathname:
require 'pathname'
path = "D:\\Google Drive\\Samples/Drums - Kicks\\Lev_Kick_A_003.wav"
Pathname(path).parent
#=> #<Pathname:D:\Google Drive\Samples\Drums - Kicks>
Pathname正确处理给定操作系统的特定文件路径语法。
答案 1 :(得分:2)
通过正则表达式或使用split,pop,join,将其作为纯字符串进行多种方式。
path = "D:\\Google Drive\\Samples\\Black Octopus Sound\\Leviathan\\Drums - Kicks\\Lev_Kick_A_003.wav"
items = path.split("\\")
items.pop
result = items.join("\\")
puts result
> D:\Google Drive\Samples\Black Octopus Sound\Leviathan\Drums - Kicks
注意我在所有情况下都用“\\”替换了“\”以逃避斜杠
或者在单行内:
path.split("\\").reverse.drop(1).reverse.join("\\")
最好的方法可能是Pathname作为其他答案,但如果你不能使用它,那么字符串操作应该有效。