2015-09-27 3 views
1

Alright, я пытаюсь открыть файл «gamewindow.rb» из папки MyScripts Я попыталсяПолучить файл из другого каталога

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

Это проявляется с ошибкой:

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. Вы можете просмотреть путь загрузки с помощью глобальной переменной $LOAD_PATH в сценарии или IRB сессии.

Таким образом, вы можете просто сделать это (если предположить, что файл gamewindow.rb присутствует в C:/Users/NAME/MyScripts каталоге):

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

получил это снова: ruby22/Библиотека/рубин/2.2.0/RubyGems/core_ext/kernel_require.rb: 54 не может загрузить такой файл - gamewindow.rb – ekultek

+0

что вы видите, когда вы делаете: ' pwd' внутри папки, где находится файл 'gamewindow.rb'? –

+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 
Смежные вопросы