Ruby on rails RubyonRails:如何将所有文件从一个文件夹移动到另一个文件夹?
但我还需要一种方法来重命名它们,以防发生冲突 如果存在,像Ruby on rails RubyonRails:如何将所有文件从一个文件夹移动到另一个文件夹?,ruby-on-rails,ruby,Ruby On Rails,Ruby,但我还需要一种方法来重命名它们,以防发生冲突 如果存在,像?然后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)) File
?然后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)
,它检查文件是否存在于原始文件夹/或子文件夹中(这是没有用的,因为它已经存在而被读取)。您需要检查目标文件夹中是否已存在文件。由于这种语法,“else”永远不会被执行。所有的文件都被命名为“1-filename”。
正确的做法是使用
if File.exists? File.join(destination, File.basename(file))
另一个选项是在shell中运行命令并处理响应:
command = "mv *.* #{ new_directory }/"
response = system command
然而,处理现有文件名等是另一回事