如何从文件路径获取父路径?

ruby string split path

102 观看

2回复

20394 作者的声誉

让我说这条路:

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\
作者: markzzz 的来源 发布者: 2016 年 1 月 12 日

回应 2


2

1646 作者的声誉

使用路径名

require 'pathname'

path = "D:\\Google Drive\\Samples/Drums - Kicks\\Lev_Kick_A_003.wav"
Pathname(path).parent
#=> #<Pathname:D:\Google Drive\Samples\Drums - Kicks>

路径名可以正确处理给定操作系统的特定文件路径语法。

作者: bogl 发布者: 2016 年 1 月 12 日

2

8269 作者的声誉

决定

通过正则表达式或使用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("\\")

最好的方法可能是路径名以及其他答案,但是如果您不能使用它,那么字符串操作应该起作用。

作者: Yule 发布者: 2016 年 1 月 12 日
32x32