Ruby, mendapatkan jalur dari jalur + nama file

88

Bahasa pemrograman: Ruby 1.9

String Masalah: C:/Test/blah.txt
keC:/Test/

Saya tahu ini pertanyaan yang mudah, tetapi Google dan referensi cepat Ruby Filetidak memiliki solusi untuk saya.
Dan saya tidak memiliki pengalaman dengan Regex.

Onetimeposter123
sumber

Jawaban:

171

Gunakan File.dirnamemetode Ruby .

File.dirname("C:/Test/blah.txt")
# => "C:/Test" 
Simone Carletti
sumber
4
Bagi saya, File.dirname("/a/b/c/d")mengembalikan dengan benar /a/b/ctetapi File.dirname("/a/b/c/d/")(garis miring) juga kembali /a/b/c.
Jason
3
Ada terlalu banyak informasi tanpa konteks dalam ruby ​​docs untuk menemukan ~ tepatnya ~ apa yang Anda cari saat ini. Bagus untuk dipoles jika Anda sudah mengetahuinya atau belajar jika Anda mencoba untuk mengetahui segalanya, mengerikan jika Anda sedang dalam sebuah proyek dan hanya perlu mengetahui satu hal ini. Terima kasih banyak atas jawaban ini, membuat hidup saya jauh lebih mudah.
JackChance
0

Lebih serbaguna adalah kelas Ruby Pathname:

require 'pathname'

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

yang memberi C:/Test/.

Twonky
sumber