2018年9月2日 星期日

備份家庭照片真的不是一件簡單的事情 - 其二

呈上一篇,話說到使用 Photos 來輸出未修改的原始檔案,輸出的目錄名稱會有個缺點,那是什麼呢?就是 Photos 是會混合地點名稱在目錄裡面的,而且還放在最前面。舉例來說:
有一些照片是在「土城」拍的,一些照片是在「鶯歌」拍攝的,依據它的命名規則,你的目錄將會是「土城 - 地址, YYYY年M月D日」和「鶯歌 - 地址, YYYY年M月D日」這樣的形式,但我個人不太喜歡,主要因為這樣子的文字排序會無法方便的依據日期找照片!

而且網路上搜尋一下常見的整理照片方式大概都是依日期分類,不然就是現在很夯的 AI 輔助分類,不過由於 AI 輔助分類並不會被資料夾影響,所以我們可以先假設照片應該都要先依據日期分類好比較好整理照片!所以目前的功課便會是如何讓資料夾只剩下日期就好。

前面也說了,照片的目錄會依據某個固定的結構來產生,這時候就要利用正規表示法來好好的過濾掉我們不要的部分,留下需要的部分。我目前工作上使用的是 C# 語言,所以就用它寫了一個可以在特定的目錄自動進行更名的程式,有需要參考的可以至此連結觀看程式碼!

邏輯概念為下:
  1. 列舉目標目錄下面所有的子目錄
  2. 針對每一個子目錄名稱,使用正規表示式分離出日期部分
  3. 針對日期部分,使用正規表示式將年、月、日分離,最後使用 YYYY-MM-DD 格式取代原本的日期格式(這是配合 Moments 的目錄架構,方便日後整理,可以選擇性跳過不處理!)
  4. 將資料移至修改名稱後的目錄中
寫程式會花費一小段時間,但是一勞永逸,以後相同的事就交給它處理即可~
至此照片初步按照日期整理完畢,就等 Moments 內建的 AI 或是轉檔程式完成他們的工作了!

不過不知道是否是實驗時檔案增減的關係,現在 Moments 似乎有點錯亂了,照片縮圖明明回報已經完成,但是網頁或是 App 上面卻都無法顯示,而且發現有些照片它歸類的日期似乎不太對,很錯亂的感覺!看來又要找時間研究一下怎麼回事了~