質問

私はそれが違いを作る必要がある場合、私は知りませんが、Windows上でのRubyを実行していますよ。私がやりたいことのすべては、現在の作業ディレクトリの絶対パスを取得することです。これはIRBから可能ですか?どうやらスクリプトから、それはFile.expand_path(__FILE__)を使用可能です。

しかし、IRBから、私は次のことを試してみましたし、 "Permission denied" エラーがしまっます:

File.new(Dir.new(".").path).expand
役に立ちましたか?

解決

Dir.pwdは、トリックを行うようだ。

http://ruby-doc.org/core/Dir。 htmlの#メソッド-C-PWDする

他のヒント

File.expand_path File.dirname(__FILE__)は、このコマンドが呼び出されたファイルへの相対ディレクトリを返します。

しかし、作業ディレクトリをDir.pwd返します(お使いの端末におけるpwdを実行すると同じ結果)

現在実行中のスクリプトからの相対パスについては、以降のルビー2.0 をあなたにも使用することができます。

__dir__

これは基本的に

と同じです
File.dirname(__FILE__)

このは、あなたの現在のファイルの作業ディレクトリを与えます。

File.dirname(__FILE__)

例:

current_file: "/Users/nemrow/SITM/folder1/folder2/amazon.rb"

結果: "/ユーザ/ nemrow / SITM / folder1の/フォルダ2"

あなたは現在のRBファイルのディレクトリのフルパスを取得したい場合:

File.expand_path('../', __FILE__)

これにより、あなたは任意のディレクトリにあるすべてのファイルの絶対パスを取得することができます。

File.join(Dir.pwd,'some-dir','some-file-name')

このは戻ります。

=> "/User/abc/xyz/some-dir/some-file-name"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top