2
我在製作gem
,將/template
目錄(位於gem內)的文件複製到控制檯的當前目錄中。Ruby - FileUtils copy_file在Windows上拒絕的權限
這裏是什麼樣子:
require "fileutils"
# Get the console's current directory
destination_dir = Dir.pwd
# Home directory of my gem, looks like C:/Ruby193/lib/ruby/gems/1.9.1/gems/my_gem-1.0.0
home_dir = File.expand_path("..", File.dirname(__FILE__))
# Template directory, looks like C:/Ruby193/lib/ruby/gems/1.9.1/gems/my_gem-1.0.0/template
template_dir = File.join(home_dir, "template")
FileUtils.copy_file(template_dir, destination_dir)
而且我得到了這個錯誤:
C:/Ruby193/lib/ruby/1.9.1/fileutils.rb:1370:in `initialize': Permission denied -
C:/Ruby193/lib/ruby/gems/1.9.1/gems/my_gem-1.0.0/template (Errno::
EACCES)
我已檢查該目錄確實運行Dir[template_dir]
存在。
任何解決方案?由於
UPDATE回答下面的評論
@Babai
我copy_file
前加入這一行,但仍然無法正常工作。我做對了嗎?
FileUtils.chmod(0777, template_dir)
@mudasobwa
下面的代碼
# puts "#{template_dir} \n #{destination_dir}"
C:/Ruby193/lib/ruby/gems/1.9.1/gems/my_gem-1.0.0/template
C:/Users/myname/Documents/Test
你可以試試這個 - http://www.ruby-doc.org/stdlib-2.0/libdoc/fileutils/rdoc/FileUtils.html#method-c-首先chmod? –
你可以在'FileUtils.copy_file'之前加入像'puts'#{template_dir}⇒#{destination_dir}'這樣的調試輸出並顯示輸出嗎? – mudasobwa
感謝您的回覆。我已將問題更新添加到回答你們兩位 – hrsetyono