私はWindowsでRubyを実行していますが、それが違いを生むかどうかはわかりません。私がやりたいのは、現在の作業ディレクトリの絶対パスを取得することだけです。これはirbから可能ですか?どうやらスクリプトからそれを使用することが可能ですFile.expand_path(__FILE__)
しかし、irbから次のことを試みたところ、「許可が拒否されました」というエラーが発生しました。
File.new(Dir.new(".").path).expand
私はWindowsでRubyを実行していますが、それが違いを生むかどうかはわかりません。私がやりたいのは、現在の作業ディレクトリの絶対パスを取得することだけです。これはirbから可能ですか?どうやらスクリプトからそれを使用することが可能ですFile.expand_path(__FILE__)
しかし、irbから次のことを試みたところ、「許可が拒否されました」というエラーが発生しました。
File.new(Dir.new(".").path).expand
Dir.pwd
トリックをするようです。
File.expand_path File.dirname(__FILE__)
このコマンドが呼び出されたファイルに関連するディレクトリを返します。
ただしDir.pwd
、作業ディレクトリを返します(端末で実行した場合と同じ結果pwd
になります)
現在実行中のスクリプトからの相対パスについては、Ruby2.0以降も使用できます。
__dir__
つまり、これは基本的にと同じです
File.dirname(__FILE__)
これにより、現在のファイルの作業ディレクトリが表示されます。
File.dirname(__FILE__)
例:
current_file: "/Users/nemrow/SITM/folder1/folder2/amazon.rb"
結果:「/ Users / nemrow / SITM / folder1/folder2」
これにより、任意のディレクトリにある任意のファイルの絶対パスを取得できます。
File.join(Dir.pwd,'some-dir','some-file-name')
これは戻ります
=> "/User/abc/xyz/some-dir/some-file-name"
現在のrbファイルのディレクトリのフルパスを取得したい場合:
File.expand_path('../', __FILE__)