Javaには、プラットフォームに依存しない方法でユーザーの「ホーム」ディレクトリを取得するための便利なSystem.getProperty("user.home")
があります。 Rubyで同等のものは何ですか?遊ぶためのWindowsボックスがないので、ファイル名のチルダに頼るのが最もクリーンな方法ではないと感じています。代替手段はありますか?
File.expand_path
メソッドは、チルダ(~
)を特別に処理するUnixの規則を使用するため、~
は現在のユーザーのホームディレクトリを参照し、~foo
はfoo
のホームディレクトリを参照します。
より良いまたはより慣用的な方法があるかどうかはわかりませんが、File.expand_path('~')
があなたを導くはずです。
Ruby 1.9以降では、 Dir.home
。
ENV["HOME"]
またはENV["HOMEPATH"]
は、あなたが望むものを与えるべきです。
homes = ["HOME", "HOMEPATH"]
realHome = homes.detect {|h| ENV[h] != nil}
if not realHome
puts "Could not find home directory"
end
これはすべてのオペレーティングシステムで動作します
Dir.home
Dir.home('username')
注: Linuxではユーザー名は大文字と小文字が区別されますが、WindowsまたはmacOSでは区別されません