我对Ruby很陌生,并且分支出过去的第一个脚本,询问我最喜欢的颜色是什么,然后重复给我。我正在做我认为是相对简单的任务,移动文件和更改名称。在Ruby中追加文件名?
我有一堆文件在子目录中,我需要移动到单个目录,然后追加所有这些文件的名称。具体需要保留原来的名称并添加到最后,IE AAB701.jpg - > AAB701_01.jpg。
我已经设法找到文件并移动它们(可能效率低下),但我没有追加到文件名。谷歌搜索,stackoverflow等,没有运气。
这是我现在的代码。
require 'find'
require "fileutils"
file_paths = []
Find.find('../../../Downloads') do |path|
file_paths << path if path =~ /.*\.jpg$/
end
file_paths.each do |filename|
name = File.basename('filename')
dest_folder = "../../../Desktop/Testing/"
FileUtils.cp(filename, dest_folder)
end
file_paths.each do |fullname|
append_txt = '_01'
filename = "*.jpg"
fullname = File.join(filename, append_txt)
end
实际的路径是非常不合理的,但我不熟悉不够用File.join或GSUB弄清楚什么是错的/最好的。
哇,这是如此的干净多了。我遇到了一个问题,因为它保留了文件扩展名,然后附加到它。 I.E. - AAB701.jpg-01.jpg – 2013-02-28 14:06:56
@LukePatton对不起,我忘了['File :: basename'](http://ruby-doc.org/core-1.9.3/File.html#method-c-basename )的界面有点有趣。它需要第二个参数来描述剥离的扩展。我已经更新了答案。 – dbenhur 2013-02-28 15:52:05
其实自己修复它。使用file.basename参数让它排除扩展名。 编辑:刚才看到你的补充,对不起。我已经把“.jpg”而不是分机,但分机似乎会适应脚本更好。 – 2013-02-28 16:35:28