2015-09-27 73 views
1

好了一個文件,我試圖打開從我已經試過獲取來自不同的目錄

Dir.open "Users/NAME" do |dir| 
require 'gamewindow.rb' 
end 

一個MyScripts文件夾中的文件「gamewindow.rb」這表明了錯誤:

body.rb:1:in no such file or dir 

我也試過;

require 'gamewindow.rb' 

這顯示了錯誤:

C:/ruby22/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54 
cannot load such file -- gamewindow.rb 

我也試過:

Dir.pwd #"Users/NAME/MyScripts" 
require 'gamewindow.rb' 

這個如上表示了同樣的錯誤,我已經試過無數其他的事情,我使用錯誤的目錄更改?我可以更改Ruby搜索的目錄嗎?

回答

2

require將僅在一組稱爲Load Path.的位置搜索文件您可以在腳本或irb會話中使用全局變量$LOAD_PATH查看加載路徑。

所以,你可以做到這一點(假設gamewindow.rb文件是C:/Users/NAME/MyScripts目錄存在):

$LOAD_PATH << File.join('C:', 'Users', 'NAME', 'MyScripts') 
require 'gamewindow' 
+0

再次得到這個: ruby​​22/lib中/紅寶石/ 2.2.0 /的rubygems/core_ext/kernel_require.rb:54 無法加載這樣的文件 - gamewindow.rb – ekultek

+0

你怎麼看當你這樣做:' 「gamewindow.rb」文件所在的文件夾內的「pwd」? –

+0

C:/ruby22/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54 無法加載這樣的文件 - gamewindow.rb – ekultek

0

,可以使用絕對路徑。

Dir.open "Users/NAME/you_script_folder" do |dir| 
    require "#{dir.path}/gamewindow.rb" 
end