4

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

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

我更喜欢不涉及查看的解决方案__FILE__,检查它是否是一个链接,如果是,找出它指向的位置。但是,如果没有其他方法,很高兴知道是否已经有宝石可以做到这一点?

4

3 回答 3

4

File.expand_path帮助吗?

(没有'nix盒子可以试一试)

于 2009-12-23T19:08:38.783 回答
3

我更喜欢以下变体:File.expand_path('../other_file_in_same_dir', __FILE__)

第二个参数是相对路径将被扩展的点。这默认为当前工作目录。

于 2009-12-24T11:34:30.377 回答
1

您始终可以使用 popen 执行诸如 ls -l $(pwd) 之类的 shell 命令并对其进行解析以遵循符号链接。对于 Windows,您只需执行等效的 windows os 命令(我假设它存在!)

于 2009-12-23T19:03:48.047 回答