我需要访问与我的Ruby脚本位置相关的文件。
我找到的唯一解决方案是使用File.dirname(__FILE__)
,但是,如果脚本是从符号链接运行的,__FILE__
会给出符号链接的位置。
我更喜欢不涉及查看__FILE__
的解决方案,检查它是否是链接,如果是,则找出它指向的位置。但是,如果没有别的办法,那么知道是否已有宝石可以做到这一点会很好吗?
答案 0 :(得分:4)
File.expand_path
有帮助吗?
(没有'nix框来试试)
答案 1 :(得分:3)
我更喜欢以下变体:File.expand_path('../other_file_in_same_dir', __FILE__)
第二个参数是相对路径将被扩展的点。这默认为当前工作目录。
答案 2 :(得分:1)
你总是可以用popen执行像ls -l $(pwd)这样的shell命令,并解析它以遵循符号链接。对于Windows,你只需执行等效的windows os命令(我假设存在!)