Проверка наличия файла в домашнем каталоге пользователя

Как я могу сказать, существует ли файл ~/.my_proj_config на любой ОС в Ruby?

Ответы

Ответ 1

Вызов Dir.home - независимый от ОС способ доступа к домашнему каталогу для пользователя. Затем вы можете использовать его как

File.exists?(File.join(Dir.home, ".my_proj_config"))

Ответ 2

Это работает в Ruby 1.9, но обратите внимание, что вызов на expand_path требуется для некоторых систем (например, Windows):

File.exists?( File.expand_path "~/.my_proj_config" )

Ответ 3

Используйте класс File и его метод exist?.

Ответ 4

Взгляните на класс Pathname, в частности на функцию realpath. Это даст вам полный (расширенный) путь к вашему файлу.

http://www.ruby-doc.org/stdlib/libdoc/pathname/rdoc/classes/Pathname.html#M001991

Затем вы используете класс File вместе с методом exists?, чтобы узнать, существует ли это. Однако вам не нужно использовать realpath, если вы используете этот метод.

http://www.ruby-doc.org/core/classes/File.html#M000045