概要
Pathnameで相対パスを取得する
詳細
Pathnameで相対パスを取得します。
サンプル
構成
$ tree └─main │ hoge1.txt │ hoge2.txt │ └─sub hoge1.txt hoge2.txt
コード
# encoding: utf-8 require 'pathname' def show_path(base) Dir.glob('**/*.txt') do |f| path = Pathname.new(File.absolute_path(f)) _filename = Pathname.new(path).relative_path_from(base) p _filename.to_s end end def get_base Pathname.new(File.absolute_path(Dir.pwd)) end show_path(get_base) puts "----------------------" Dir.chdir('main') show_path(get_base)
出力
"main/hoge1.txt" "main/hoge2.txt" "main/sub/hoge1.txt" "main/sub/hoge2.txt" ---------------------- "hoge1.txt" "hoge2.txt" "sub/hoge1.txt" "sub/hoge2.txt"