我需要访问与我的 Ruby 脚本位置相关的文件。
我发现的唯一解决方案是使用File.dirname(__FILE__)
,但是,如果脚本是从符号链接运行的,则会__FILE__
给出符号链接的位置。
我更喜欢不涉及查看的解决方案__FILE__
,检查它是否是一个链接,如果是,找出它指向的位置。但是,如果没有其他方法,很高兴知道是否已经有宝石可以做到这一点?
我需要访问与我的 Ruby 脚本位置相关的文件。
我发现的唯一解决方案是使用File.dirname(__FILE__)
,但是,如果脚本是从符号链接运行的,则会__FILE__
给出符号链接的位置。
我更喜欢不涉及查看的解决方案__FILE__
,检查它是否是一个链接,如果是,找出它指向的位置。但是,如果没有其他方法,很高兴知道是否已经有宝石可以做到这一点?
有File.expand_path
帮助吗?
(没有'nix盒子可以试一试)
我更喜欢以下变体:File.expand_path('../other_file_in_same_dir', __FILE__)
第二个参数是相对路径将被扩展的点。这默认为当前工作目录。
您始终可以使用 popen 执行诸如 ls -l $(pwd) 之类的 shell 命令并对其进行解析以遵循符号链接。对于 Windows,您只需执行等效的 windows os 命令(我假设它存在!)