但是我還需要一種方式來重新命名它們,以防止發生衝突。Ruby on Rails:如何將所有文件從一個文件夾移動到另一個文件夾?
像if exists? then file.name = "1-"+file.name
或類似的
但是我還需要一種方式來重新命名它們,以防止發生衝突。Ruby on Rails:如何將所有文件從一個文件夾移動到另一個文件夾?
像if exists? then file.name = "1-"+file.name
或類似的
東西也許這樣的事情對你的作品:
origin = '/test_dir'
destination = '/another_test_dir'
Dir.glob(File.join(origin, '*')).each do |file|
if File.exists? File.join(destination, File.basename(file))
FileUtils.move file, File.join(destination, "1-#{File.basename(file)}")
else
FileUtils.move file, File.join(destination, File.basename(file))
end
end
最好的問候。
上面的代碼有效,但很小的錯誤,您正在使用if File.exists?(file)
,它檢查文件是否在原始文件夾/或子文件夾中退出(由於它已經存在而被讀取,因此無法使用)。您需要檢查目標文件夾中是否存在文件。由於這種語法,「其他」永遠不會被執行。所有文件都被命名爲「1-filename」。 正確的是使用
if File.exists? File.join(destination, File.basename(file))