访问与脚本相同的目录中的文件

时间:2009-12-23 18:48:57

标签: ruby relative-path cwd

我需要访问与我的Ruby脚本位置相关的文件。

我找到的唯一解决方案是使用File.dirname(__FILE__),但是,如果脚本是从符号链接运行的,__FILE__会给出符号链接的位置。

我更喜欢不涉及查看__FILE__的解决方案,检查它是否是链接,如果是,则找出它指向的位置。但是,如果没有别的办法,那么知道是否已有宝石可以做到这一点会很好吗?

3 个答案:

答案 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命令(我假设存在!)