其實我是為了試試用markdown的感覺,附帶改掉前幾天貼的難看的代碼
# 思路:
# => A.遍歷目錄對象
# => B.獲取目錄下的文件名稱File對象
# => C.判斷文件后綴格式
# => D.截取新的文件命名
# => E.重命名
require 'find'
require 'pathname'
require 'fileutils'
puts "#####################開始腳本處理#######################"
puts "########################################################"
DIR_PHOTOS = "/Users/gongyangbo/projects/rubycode/photos_handle"
i = 0 #定義變量記錄所有的符合規定格式的文件數量
j = 0 #記錄被處理過的文件數量
Find.find(DIR_PHOTOS) do |filename|
path = Pathname.new(filename)
extname = path.extname # 文件后綴名
begin
if extname == ".JPG" || extname == ".png" || extname == ".jpg" || extname == ".jpeg" || extname == ".PNG"
i = i + 1
primary_name = path.basename # 文件名
if extname == ".jpeg"
new_name = primary_name.to_s[-11..-1] # 截取新的文件名
elsif extname == ".JPG"
new_name = primary_name.to_s[-10..-4] + "jpg"
elsif extname == ".PNG"
new_name = primary_name.to_s[-10..-4] + "png"
else
new_name = primary_name.to_s[-10..-1]
end
puts "-------------第#{i}張照片原名為: #{primary_name}"
if new_name.include?("+")
puts " \033[31m #{primary_name}格式不對,不做修改 \031"
else
j = j + 1
File.rename(filename,new_name)
puts "\033[36m----------------將被重命名為: #{new_name}\033[0m\n"
end
puts " \033[34mnext..\033[0m"
puts ""
end
rescue Exception => e
end
end
puts "一共有 #{i} 張照片"
puts "本次處理了 #{j} 張照片"
運行效果