Ruby中相当于PHP的dirname(__FILE__)的函数是什么?

3
在 Ruby 中,与 PHP 的 dirname(__FILE__) 相当的是什么?

1
你尝试过访问http://www.phptoruby.com/submit-code吗? - Mild Fuzz
很棒的网站!但我在那里找不到dirname(FILE)。 - Prakash Raman
如果您使用的是PHP 5.3,还有__DIR__,因此您不需要调用dirname()函数--请参见http://php.net/manual/en/language.constants.predefined.php。 - Spudley
不可以,但您可以提交咨询。这只是另一个资源! - Mild Fuzz
@Spudley 不错的提示,但与问题不太相关。 :) - Mild Fuzz
@Mile Fuzz - 这就是为什么它是一条注释而不是答案的原因 :) - Spudley
5个回答

4

在 @potac 和 @jakub-hampl 的帮助下,我得出了结论

File.dirname(File.expand_path(__FILE__))

这正好符合我的需求。

1
puts File.expand_path(__FILE__)

我不熟悉 Ruby(但熟悉 PHP),我在 Rails for PHP Developers 中找到了这个。


返回文件路径而不是所在文件夹的路径。 谢谢,它帮助我找到了这个。 File.dirname(File.expand_path(FILE))。 谢谢! - Prakash Raman

0
怎么样:
File.dirname __FILE__

只有使用__FILE__才能返回文件的完整路径,这很有帮助。 - Prakash Raman
@JimRubenstein 这是Ruby语言,圆括号并非必须的。(根据您的风格指南,在某些情况下可能会被禁止使用)。 - Jakub Hampl
抱歉我之前的行为有些不好,给你点了负分。那时候我正在发牢骚,说我讨厌 Ruby 允许括号是可选的。我知道在某些情况下这样做可以增加表达能力,但它确实会给代码带来很多混乱。对象属性和对象方法之间的区别变得模糊不清。我会给你点个赞,因为我在答案中找到了用处,只是我希望你在这种情况下使用括号而不是推广这种语言“特性”。 - Jim Rubenstein

0

实际上不是这样的。它返回进程的当前工作目录,而不是调用它的文件。 - lucaswxp

0

从 Ruby 2.0 开始,Ruby 也有一个 __dir__ 方法 直接实现了你所要求的功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接