Rubyを使用してWindows上でファイルをどのように移動しますか? documentationを見ると、FileUtils.move
と同じように見えます。これはWindows 10で私にとってはうまくいきません。Ruby FileUtils.move Errno :: EACCES:Windowsでのアクセスが拒否されました
irb(main):001:0> RUBY_VERSION
=> "2.3.0"
irb(main):002:0> require 'fileutils'
=> true
irb(main):003:0> FileUtils.mkdir("first_directory")
=> ["first_directory"]
irb(main):004:0> FileUtils.mkdir("second_directory")
=> ["second_directory"]
irb(main):005:0> FileUtils.touch(File.join("first_directory", "test_file"))
=> ["first_directory/test_file"]
irb(main):006:0> file = File.new(File.join("first_directory", "test_file"))
=> #<File:first_directory/test_file>
irb(main):007:0> FileUtils.move(file, "second_directory")
Errno::EACCES: Permission denied @ rb_file_s_rename - (first_directory/test_file, second_directory/test_file)
from C:/ruby/23-x64/lib/ruby/2.3.0/fileutils.rb:528:in `rename'
from C:/ruby/23-x64/lib/ruby/2.3.0/fileutils.rb:528:in `block in mv'
from C:/ruby/23-x64/lib/ruby/2.3.0/fileutils.rb:1571:in `block in fu_each_src_dest'
from C:/ruby/23-x64/lib/ruby/2.3.0/fileutils.rb:1585:in `fu_each_src_dest0'
from C:/ruby/23-x64/lib/ruby/2.3.0/fileutils.rb:1569:in `fu_each_src_dest'
from C:/ruby/23-x64/lib/ruby/2.3.0/fileutils.rb:517:in `mv'
from (irb):5
from C:/ruby/23-x64/bin/irb.cmd:19:in `<main>'
これは既知の制限ですか?バグですか?それとも、何か間違っているだけですか?グーグルではLinuxシステムではchmod
の結果が出るが、Windowsには関係ないと思う(管理者としてのスクリプトの実行に関係なく)。