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.

Jawaban:


171

Gunakan File.dirnamemetode Ruby .

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

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/.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.