I need to access 开发者_StackOverflow中文版files that are relative to the location of my Ruby script.
The only solution I've found is using File.dirname(__FILE__)
, however, if the script is run from a symlink, __FILE__
gives the location of the symlink.
I would prefer a solution that does not involve looking at __FILE__
, checking if it's a link, if it is, finding out where it points to. But, if there is no other way, it would be nice to know if there is already a gem to do this?
does File.expand_path
help?
(don't have a 'nix box to try it on)
I prefer the following variant: File.expand_path('../other_file_in_same_dir', __FILE__)
The second argument is the point from where the relative path will get expanded. This defaults to the current working directory.
You could always execute a shell command like ls -l $(pwd) with popen and parse it to follow the symlink. For windows you would simply execute the equivalent windows os command (which I'm assuming exists!)
精彩评论