🎉
RubyのFile.expand_pathについて
概要
File.expand_path(file_name [, dir_string] )
について記載する。expand_path
は、想定パスから絶対パスを取得する関数である。dir_string
を指定した場合、dir_string
を基準にし、指定しない場合、実行プロセスのパスを基準にします。
使ってみる
次のディレクトリ構造を想定しています。
/home/russ/src/tachibana
|--lib
| |--data
| | |--holidays.csv
| |--lib.rb
またlib.rbの実装は、次の通りです。
pp Dir.pwd
pp File.expand_path('../data/holidays.csv')
pp File.expand_path('../data/holidays.csv', __FILE__)
tachibanaディレクトリで実行する
russ@penguin:~/src/tachibana$ ruby lib/lib.rb
"/home/russ/src/tachibana" # 実行プロセスのパス
"/home/russ/src/data/holidays.csv" # dir_stringに__FILE__を指定しない
"/home/russ/src/tachibana/lib/data/holidays.csv" # dir_stringに__FILE__を指定する
tachibana/libディレクトリで実行する
russ@penguin:~/src/tachibana/lib$ ruby lib.rb
"/home/russ/src/tachibana/lib" # 実行プロセスのパス
"/home/russ/src/tachibana/data/holidays.csv" # dir_stringに__FILE__を指定しない
"/home/russ/src/tachibana/lib/data/holidays.csv" # dir_stringに__FILE__を指定する
以上です。
Discussion