ファイル名に〜(ホームディレクトリ)を指定した場合、以下のようにエラーになってしまいます。
filename = '~/file.txt' f = File.open(filename, 'w') f.puts("hello world") f.close
$ ruby file_err.rb file_err.rb:2:in `initialize': No such file or directory - ~/file.txt (Errno::ENOENT) from file_err.rb:2:in `open' from file_err.rb:2
このような場合は、絶対パスを取得できるexpand_pathメソッドを利用します。
filename = '~/file.txt' f = File.open(File.expand_path(filename), 'w') f.puts("hello world") f.close
$ ruby file_expand_path.rb $ cat file.txt hello world