我想将数千个文件混合到许多目录中。
require 'fileutils'
files = Dir.glob("**/*.jpg")
files.shuffle!
((files.size/100)+1).times do |i|
FileUtils.mkdir_p("%03d" % i)
100.times{|j|
begin
FileUtils.mv(files[j+i*100],"%03d" % i)
rescue ArgumentError
end
}
end
有时源和目标是同一个文件。
要忽略我正在使用rescue ArgumentError
的错误。
但我认为这样使用Exception
是不好的方法。
当源和目标相同时,有没有更好的方法什么都不做?
答案 0 :(得分:1)
orig, dest = files[j+i*100], "%03d" % i
FileUtils.mv(orig, dest) unless File.basename(orig) == dest