Ruby、パス+ファイル名からパスを取得


88

プログラミング言語:Ruby 1.9

問題の文字列:C:/Test/blah.txt
toC:/Test/

簡単な質問だと思いますが、GoogleとRubyのquickrefにFileは解決策がありません。
そして、私は正規表現の経験がありません。

回答:


171

RubyFile.dirnameメソッドを使用します。

File.dirname("C:/Test/blah.txt")
# => "C:/Test" 

4
私の場合、File.dirname("/a/b/c/d")正しく戻ります/a/b/cが、File.dirname("/a/b/c/d/")(末尾のスラッシュ)戻ります/a/b/c
ジェイソン

3
rubyのドキュメントには、コンテキストのない情報が多すぎて、現時点で探しているものを「正確に」見つけることができません。すでに知っている場合はブラッシュアップしたり、すべてを知りたい場合は勉強したりするのに最適です。プロジェクトに参加していて、この1つを知る必要がある場合は恐ろしいことです。この答えをどうもありがとう、私にとって人生はずっと楽になりました。
JackChance 2016

0

より用途が広いのは、RubyPathnameクラスです。

require 'pathname'

pn = Pathname.new("C:/Test/blah.txt")
p pn.dirname.to_s + Pathname::SEPARATOR_LIST

これはを与えC:/Test/ます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.