您好,登錄后才能下訂單哦!
電腦里面的相片,因為復制來,復制去的.時間不太對.然后傳到iphone就亂了.那邊是以創建時間什么的來排序.然后折騰了一個腳本改創建時間.網上搜索了一下.沒看見有什么好辦法可以改. 只有使用一個比較SB的方法了.
首先把相片的exif信息中的時間取出,然后把系統時間改為這個時間.再復制一下.OK
考慮有的jpg可能沒有拍攝時間,就以創建時間和修改時間去比較,按比較小的來.
require 'exifr' require 'fileutils' require 'find' dist_dir = "D:/Old/Pic" def chang_ctime(name) temp_dir = File.join(name.split('/')[0..-2]).sub('Old','New') unless Dir.exist?(temp_dir) FileUtils.mkdir_p(temp_dir) end if File.file?(name) if name[-4..-1].downcase == '.jpg' temp_date = EXIFR::JPEG.new(name).date_time_original.to_s if temp_date.size != 0 temp_date = temp_date.split `date #{temp_date[0]}` `time #{temp_date[1]}` FileUtils.cp name, name.sub("Old","New") else if File.ctime(name) > File.mtime(name) temp_date = File.mtime(name).to_s.split `date #{temp_date[0]}` `time #{temp_date[1]}` else temp_date = File.ctime(name).to_s.split `date #{temp_date[0]}` `time #{temp_date[1]}` end FileUtils.cp name, name.sub("Old","New") end else if File.ctime(name) > File.mtime(name) temp_date = File.mtime(name).to_s.split `date #{temp_date[0]}` `time #{temp_date[1]}` else temp_date = File.ctime(name).to_s.split `date #{temp_date[0]}` `time #{temp_date[1]}` end FileUtils.cp name, name.sub("Old","New") end end end Find.find(dist_dir) do |path| chang_ctime(path) end puts "OK"
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。