我有这样的代码,不会在当前目录下的图像的一些重命名:红宝石重命名文件删除文件
puts Dir["**/*"].length
folder_path = Dir.pwd
filenames = Dir.glob("*.png")
filenames.each_with_index do |filename, index|
File.rename(filename, folder_path + "/#{index}" + File.extname(filename))
end
我的控制台:
98
$ ruby rename.rb
90
$ ruby rename.rb
90
$ ruby rename.rb
90
$ ruby rename.rb
82
$ ruby rename.rb
82
$ ruby rename.rb
74
$ ruby rename.rb
74
$ ruby rename.rb
66
好像这是第3时间我跑代码中的一些图像在进程中被删除。
无关,但'#{index.to_s}'是多余的。使用'#{}'已经调用'to_s',所以你实际上在做'index.to_s.to_s'。只需使用'#{index}'。 – meagar 2014-11-02 18:00:21
@meagar已更新。如果我更新脚本,每运行一次新的文件名示例“/ sa#{index}”,则不会删除这些文件。 – 2014-11-02 18:03:05
“这似乎是我第三次运行代码时,某些图像在进程中被删除。” - 他们是否被删除?你说它看起来像。我可以一遍又一遍地运行这段代码,它所做的只是将它命名为PNG的0.png,1.png,2.png等。似乎很好。 – 2014-11-02 18:09:59