Ruby, lấy đường dẫn từ đường dẫn + tên tệp


88

Ngôn ngữ lập trình: Ruby 1.9

Chuỗi vấn đề: C:/Test/blah.txt
đếnC:/Test/

Tôi biết đó là một câu hỏi dễ, nhưng Google và Quickref của Ruby Filekhông có giải pháp nào cho tôi.
Và tôi không có kinh nghiệm với Regex.

Câu trả lời:


171

Sử dụng File.dirnamephương pháp Ruby .

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

4
Đối với tôi, File.dirname("/a/b/c/d")trả về chính xác /a/b/cnhưng File.dirname("/a/b/c/d/")(dấu gạch chéo) cũng trả về /a/b/c.
Jason

3
Chỉ có quá nhiều thông tin mà không có ngữ cảnh trong tài liệu về ruby ​​để tìm ~ chính xác ~ thứ bạn đang tìm kiếm vào lúc này. Thật tuyệt nếu bạn đã biết nó hoặc nghiên cứu nếu bạn đang cố gắng biết mọi thứ, thật kinh khủng nếu bạn đang tham gia một dự án và chỉ cần biết một điều này. Cảm ơn rất nhiều vì câu trả lời này, đã làm cho cuộc sống của tôi dễ dàng hơn rất nhiều.
JackChance

0

Linh hoạt hơn sẽ là lớp Ruby Pathname:

require 'pathname'

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

mà cho C:/Test/.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.