【发布时间】:2012-10-20 18:09:41
【问题描述】:
我有一个包含许多子目录的目录,每个子目录都包含要测试的不同版本的程序。
all_dirs.each do |dir|
FileUtils.mv(test_spec, target_dir, :verbose => true)
system("rspec #{test_folder_name}")
puts "moving back: '#{spec_dir}' to '#{current_dir}'"
FileUtils.mv(spec_dir, current_dir, :verbose => true)
end
在大多数情况下代码是成功的,但有时它拒绝将目录移动到父目录,因为它已经存在。
mv ~/test/version-1/01-spec ~/test
~/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:509:in `block in mv': File exists - ~/test (Errno::EEXIST)
from ~/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:1423:in `block in fu_each_src_dest'
from ~/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:1437:in `fu_each_src_dest0'
from ~/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:1421:in `fu_each_src_dest'
from ~/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:504:in `mv'
unix mv 命令有效,抛出该异常后可以执行。我做错了吗?
【问题讨论】: