Canon Digital Camera 相機獨享 - 記憶卡歸檔工具
問題與答案 (FAQ)
Q&A 類別 A: 概念理解類
A-Q1: 什麼是 DigitalCameraFiler?
- A簡: 一款 .NET 2.0 命令列相片/影片歸檔工具,依日期與主題自動搬運並命名檔案,取代傳統批次檔的簡易自動化方案。
- A詳: DigitalCameraFiler 是以 .NET Framework 2.0 撰寫的輕量命令列工具,用於從記憶卡(如 DCIM 目錄)自動歸檔相片與影片。它透過設定檔的 targetPattern 與 arguments 取值,將檔案依日期、主題、相機型號與原檔名等資訊生成規範化的路徑與檔名。相較 GUI 相簿軟體,它更適合只想要「搬檔案、正確命名、快速完成」的自動化流程,特別適合習慣用檔案總管管理相片的使用者。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: A-Q2, A-Q3, B-Q1
A-Q2: 為什麼需要記憶卡歸檔工具?
- A簡: 解決日期歸檔麻煩、影片分流、直拍方向、不同相機檔名衝突等日常整理痛點,提升效率與一致性。
- A詳: 日常拍攝常見問題包含:以日期與主題分目錄很麻煩、影片與相片混雜、直拍照片方向不一致、兩台相機檔名重覆等。一般 GUI 相簿軟體能處理,但對只需搬運與命名檔案者太笨重。命令列歸檔工具讓你以一條指令,批次搬運 JPG/CRW/AVI 並依自訂規則命名,維持檔案系統為核心的管理方式,不依賴資料庫,且易於自動化與備份。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: A-Q1, A-Q3, A-Q8
A-Q3: DigitalCameraFiler 與 Picasa/Adobe Album/AcdSee 的差異?
- A簡: 前者是純命令列自動歸檔與命名;後者是完整相簿管理與瀏覽。目標、介面與依賴不同。
- A詳: Picasa/Adobe Album/AcdSee 側重相片瀏覽、標籤、臉部辨識與編修等豐富功能,通常以 GUI 操作與資料庫為核心。DigitalCameraFiler 則是輕量命令列工具,專注在「讀取卡片→依規則命名→搬到固定結構」這段流程,幾乎不涉入後製與瀏覽。若你偏好用檔案系統治理(資料夾即分類),想避免安裝大型套件,或要加入批次、自動備份流程,命令列工具更契合。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: A-Q1, B-Q1, B-Q15
A-Q4: 什麼是 DCIM 目錄?為何重要?
- A簡: 數位相機記憶卡上的標準相片資料夾結構,常見路徑為 X:\DCIM,用於存放相片與影片檔。
- A詳: DCIM(Digital Camera IMages)是相機記憶卡通用的目錄規範,幾乎所有相機在記憶卡根目錄下建立 DCIM 並於其內分子目錄(如 100CANON)。因此,批次或工具掃描記憶卡時,通常以 X:\DCIM 為起點遞迴處理,能跨品牌穩定定位相片與影片。理解 DCIM 結構有助於自動化搬運,避免誤掃其他非相片的資料夾。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: B-Q1, B-Q11, C-Q3
A-Q5: 批次檔歸檔與專用工具有何差異?
- A簡: 批次檔易上手但功能有限;專用工具可讀取中繼資料、彈性命名、較可靠且便於擴充與維護。
- A詳: 批次檔(for/move/del)能快速搬檔,但難以解析 EXIF 或相機中繼資料,也不易處理日期精確度、相機型號命名、衝突處理與錯誤回報;其日期常取自執行當天。專用工具可透過程式庫讀取檔案屬性或 EXIF,支援自訂命名樣板與安全檔名策略、將影片與相片分流、刪除無用縮圖,並可透過設定檔調整行為,維護性與可控性更好。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: A-Q7, B-Q5, B-Q8
A-Q6: 什麼是 EXIF?與歸檔有何關聯?
- A簡: EXIF 是相片中繼資料標準,包含拍攝時間、相機型號、方向等,支援更精確的命名與分類。
- A詳: EXIF(Exchangeable Image File Format)是一種嵌入於影像檔(如 JPG)的中繼資料,記錄拍攝日期時間(DateTimeOriginal)、相機型號(Model)、曝光資訊與方向(Orientation)等。歸檔時若能讀取 EXIF,便可用拍攝時間取代「複製時間」,精準按天/主題命名,亦可將相機型號納入路徑避免檔名衝突,甚至據 Orientation 規劃轉正流程(若工具支援)。
- 難度: 中級
- 學習階段: 核心
- 關聯概念: B-Q5, B-Q6, D-Q2
A-Q7: 為何只用複製當天的日期不精確?
- A簡: 複製日期受搬運時間影響,與拍攝時間無關,跨日或延後整理時會錯一天或混天數。
- A詳: 若命名使用系統的當日日期或檔案建立日期,常與「實際拍攝時間」不同。晚間跨日才備份時,整批相片會被標為隔日,數天累積再搬更會混在同一目錄。正確作法應使用拍攝時間(EXIF DateTimeOriginal)或至少檔案的 LastWriteTime(若相機/讀卡器保留),以反映真實拍攝日,避免日誌與回憶線索錯置。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: A-Q6, B-Q7, D-Q2
A-Q8: 為什麼常見命名包含「日期 + 主題」?
- A簡: 日期提供時間序;主題記錄事件語意。兩者結合利於搜尋、瀏覽與回憶重建,且對備份友善。
- A詳: 檔案系統導向的相片管理強調「可預期、可搜尋」。以日期(排序穩定)配合主題(語意清楚)建目錄,如「2025-0826 [公園外拍]」,可在不依賴資料庫的前提下快速定位事件。命令列工具允許以引數提供主題,或在設定檔用 default.title 做後備,兼顧批次化與一致性,亦利於同步/雲端備份。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: A-Q12, C-Q3, C-Q7
A-Q9: DigitalCameraFiler 支援哪些檔案?如何分類?
- A簡: 典型處理 JPG(相片)、CRW(RAW)、AVI(影片)、THM(影片縮圖);可依類型分流至不同路徑。
- A詳: 實務上,工具會遞迴掃描記憶卡(如 X:\DCIM),依副檔名分流:JPG 放入 photo.targetPattern;CRW(Canon RAW)走 general.targetPattern;AVI(影片)走 video.targetPattern;THM 常為影片縮圖,可刪除或忽略。透過 pattern 可將影片與相片分磁碟儲存,兼顧容量與備份策略;也可擴充其他副檔名。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: B-Q3, B-Q4, C-Q5
A-Q10: 什麼是 targetPattern 與 arguments?
- A簡: targetPattern 是命名樣板;arguments 定義樣板可用的欄位來源與順序,兩者搭配產生最終路徑。
- A詳: 設定檔中,photo/video/general.targetPattern 是一段格式字串,使用 {0}、{1}… 佔位符,透過後方 arguments 指定來源與順序(如 LastWriteTime,Title,Model,Name,FileNameWithoutExtension)。執行時會以對應值替換,並支援日期格式化(如 {0:yyyy-MMdd})。此設計讓命名高度彈性,可快速迭代歸檔規則而不改程式。
- 難度: 中級
- 學習階段: 核心
- 關聯概念: B-Q2, B-Q13, C-Q2
A-Q11: 佔位符 {0}/{1} 與格式化如何對應?
- A簡: 佔位符位置對應 arguments 順序;可套用日期格式等,例如 {0:yyyy-MMdd} 將時間格式化為字串。
- A詳: 設定檔 arguments 例如「LastWriteTime,Title,Model,Name,FileNameWithoutExtension」,則 {0} 代表 LastWriteTime、{1} 代表 Title 等。若 {0} 是 DateTime,可用 {0:yyyy-MMdd} 等自訂格式輸出。文字欄位可直接輸出,亦能與常文字(如方括號與 #)組合,構成如「{0} [{1}] {2} #{4}」的可讀命名。
- 難度: 初級
- 學習階段: 核心
- 關聯概念: A-Q10, B-Q2, C-Q4
A-Q12: default.title 有什麼用途?
- A簡: 當執行未提供主題引數時,用 default.title 取代,確保命名完整且一致。
- A詳: 很多時候使用者只想快速搬運資料而未指定主題。為避免出現空白主題,設定檔提供 default.title(如「未定標題」)作為後備值。命令列若有提供主題,則覆蓋 default。此機制兼顧使用體驗與命名一致性,也便於後續在檔案總管批次更名或重整主題。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: C-Q3, C-Q7, B-Q9
A-Q13: 為什麼通常將影片與相片分開儲存?
- A簡: 影片檔大、格式不同、備份節奏與播放需求不同;分磁碟可優化容量與效能管理。
- A詳: 影片(如 AVI/MP4)體積較大且使用頻率不同,與相片混存容易造成單一磁碟擁擠與備份時間拉長。分開儲存可:1) 針對影片使用較大且順序寫入友善的磁碟;2) 相片可放高可靠度或快照頻繁的磁碟;3) 瀏覽器/相簿索引更快。命名樣板可於影片路徑加入主題與原檔名,維持跨媒體一致性。
- 難度: 初級
- 學習階段: 核心
- 關聯概念: A-Q9, C-Q8, D-Q9
A-Q14: 命令列工具的核心價值是什麼?
- A簡: 可自動化、可批次、可腳本整合,無 GUI 開銷,適合固定流程與大規模處理。
- A詳: 命令列便於與批次檔、PowerShell、排程器或備份腳本整合,將「插卡→搬運→刪縮圖→備份」一氣呵成。無 GUI 負擔、啟動快,適合只需穩定命名與搬運的場景。也便於版本化設定、跨機器部署與 CI 式資料整理,提升一致性與可追溯性。
- 難度: 初級
- 學習階段: 核心
- 關聯概念: B-Q15, C-Q10, D-Q8
A-Q15: 為什麼需要 .NET Framework 2.0?
- A簡: 工具以 .NET 2.0 開發,執行需相容的執行時環境;未安裝會導致啟動失敗。
- A詳: DigitalCameraFiler 是 .NET 2.0 應用程式,依賴 CLR 與系統類別庫(檔案 I/O、字串格式化、設定檔讀取、影像/EXIF 讀取等)。Windows 若未安裝對應版本,將無法啟動。安裝 .NET 2.0 或相容的更高版本(含正確轉發)可解決。此依賴也讓工具易於跨機器部署。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: D-Q1, B-Q13, C-Q1
Q&A 類別 B: 技術原理類
B-Q1: DigitalCameraFiler 的整體流程如何運作?
- A簡: 掃描記憶卡→辨識檔案類型→蒐集欄位→套用樣板→建立目錄→移動檔案→(可選)清理。
- A詳: 程式啟動後解析命令列與設定檔,決定來源路徑與主題。接著遞迴掃描 DCIM 取得檔案清單,依副檔名分派至 photo/general/video 的 targetPattern。依 arguments 順序收集欄位值(如 LastWriteTime、Title、Model 等),用格式化字串生成目標路徑。若目標資料夾不存在先建立,再執行 Move。最後(可選)處理清理動作,如忽略或刪除 THM。
- 難度: 中級
- 學習階段: 核心
- 關聯概念: A-Q1, A-Q9, B-Q3
B-Q2: 檔名與路徑是如何由樣板生成的?
- A簡: 以 .NET 字串格式化將 {index[:format]} 佔位符替換為 arguments 對應值,組合出完整路徑。
- A詳: 程式讀取 targetPattern(例:c:\photos{0:yyyy-MMdd} [{1}]{2} #{3}),再將 arguments 解析為欄位來源。執行時取出每個欄位值(如時間、主題、相機型號、檔名),依索引替換佔位符,若有格式(如日期)即套用。此機制高度通用,允許快速調整命名規則,不須改程式碼,僅改設定檔即生效。
- 難度: 初級
- 學習階段: 核心
- 關聯概念: A-Q10, A-Q11, C-Q2
B-Q3: 工具如何判定檔案類型並分流?
- A簡: 依副檔名分類:JPG→photo,CRW→general,AVI→video,THM→忽略/清理,對應不同樣板。
- A詳: 分流通常以副檔名比對(大小寫不敏感)。常見設定為:JPG 使用 photo.targetPattern;CRW 等 RAW 使用 general.targetPattern;AVI 使用 video.targetPattern;THM 視為影片縮圖,依策略忽略或刪除。此設計讓儲存裝置佈局可針對媒體型態最佳化,亦能按需擴充其他格式(如 MOV、MP4)。
- 難度: 初級
- 學習階段: 核心
- 關聯概念: A-Q9, C-Q5, D-Q7
B-Q4: 為何要處理 THM?原理是什麼?
- A簡: THM 是影片縮圖或中繼檔,對歸檔多餘;以副檔名比對後刪除或忽略,減少雜訊與空間。
- A詳: 多數相機生成與影片同名的 THM(thumbnail)檔,供相機內預覽縮圖。歸檔至電腦後,THM 通常不再需要,亦會干擾檔案清單。流程上可在掃描時將 THM 放入忽略清單,或像原批次檔以 del /f /q 刪除,達到乾淨的媒體目錄。若某些應用仍需 THM,可改為分流保存。
- 難度: 初級
- 學習階段: 核心
- 關聯概念: A-Q9, C-Q5, D-Q7
B-Q5: 工具如何取得 EXIF 與檔案屬性?
- A簡: 透過 .NET 影像 API 讀取 EXIF(如 Model),透過 FileInfo 取得時間等檔案屬性,整合供樣板使用。
- A詳: 在 .NET 2.0,可用 System.Drawing.Image 載入 JPG 並讀取 PropertyItems(如 0x0110=Model、0x9003=DateTimeOriginal、0x0112=Orientation)。若讀取失敗或非影像類型,則回退至檔案屬性(FileInfo.LastWriteTime 等)。為效能與穩定,僅在需要欄位時讀取 EXIF,並以例外處理確保不中斷整批流程。
- 難度: 中級
- 學習階段: 核心
- 關聯概念: A-Q6, B-Q7, D-Q2
B-Q6: 相機型號(Model)是如何讀取與使用?
- A簡: 讀取 EXIF tag 0x0110(Model),將其作為樣板欄位,用於避免不同相機檔名衝突。
- A詳: 相機型號存在於 EXIF Model 欄位,典型值如「Canon PowerShot G2」。工具於處理 JPG 時嘗試讀取該欄位,成功則可在 targetPattern 中以 {2}(依 arguments 順序)嵌入到資料夾或檔名,如「…{Model} #{FileName}」。這能在兩台相機拍出相同檔名(如 IMG_1234.JPG)時仍區分來源。
- 難度: 中級
- 學習階段: 核心
- 關聯概念: A-Q5, A-Q9, C-Q6
B-Q7: 日期欄位來源如何選擇?策略為何?
- A簡: 優先拍攝時間(EXIF DateTimeOriginal),其次 FileInfo.LastWriteTime;視相機/讀卡器是否保留時間。
- A詳: 理想情況下,應以 EXIF 的 DateTimeOriginal 命名;但若讀取失敗或格式異常,則退回至 LastWriteTime。部分設備或複製方式會改變檔案時間戳,導致偏差。可在 arguments 中選用可用欄位,並於流程中設計多重回退策略,確保盡可能貼近真實拍攝日期。
- 難度: 中級
- 學習階段: 核心
- 關聯概念: A-Q7, D-Q2, C-Q2
B-Q8: 如何避免重名與覆蓋?
- A簡: 以「相機型號 + 原檔名」組合,或在命名加入序號/雜湊;若存在則改名或跳過並記錄。
- A詳: 不同相機可能產生相同檔名(IMG_XXXX),可透過樣板加入 {Model} 與 {FileNameWithoutExtension},形成唯一性,如「Canon PowerShot G2 #IMG_1234」。亦可加上序號或時間戳。移動前檢查目標存在則採增量命名或略過並記錄到日誌,避免意外覆蓋。
- 難度: 中級
- 學習階段: 核心
- 關聯概念: A-Q3, C-Q6, D-Q4
B-Q9: 命令列參數與 default.title 如何交互?
- A簡: 命令列未提供主題時使用 default.title;提供時則覆蓋,確保每批次都有標題。
- A詳: 執行格式如「DigitalCameraFiler.exe F:\ 公園外拍」,第二參數即主題;若省略,程式從設定檔讀取 default.title 作為主題欄位值。此一覆蓋策略簡化使用流程,亦讓模式化排程(無互動)能有一致命名。
- 難度: 初級
- 學習階段: 核心
- 關聯概念: A-Q12, C-Q3, C-Q7
B-Q10: 目標資料夾自動建立的機制是什麼?
- A簡: 在移動前檢查目標路徑,若不存在則遞迴建立目錄,確保 Move 成功。
- A詳: 根據樣板生成的目錄可能尚未存在。程式執行前先解析完整路徑,再以 Directory.CreateDirectory 進行遞迴建立(多層結構均可),該 API 在目錄存在時也安全。成功建立後,再執行 File.Move,減少失敗與例外。若建立失敗,記錄錯誤並跳過該檔案。
- 難度: 初級
- 學習階段: 核心
- 關聯概念: B-Q1, D-Q5, C-Q3
B-Q11: 批次檔 for /R 與 move 的原理?
- A簡: for /R 遞迴枚舉目錄,針對每檔案執行 move;/-Y 避免覆蓋;del 刪除 THM。
- A詳: Windows 批次中「for /R 根目錄 %%f in (*.jpg) do move …」可遞迴拾取所有符合副檔名的檔案,再以 move 移動到目標資料夾。「/-Y」參數在覆蓋時提示確認,降低誤覆蓋風險。對 THM 使用 del /f /q 快速刪除。該方式直觀,但擴充性與中繼資料存取有限。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: A-Q5, C-Q9, D-Q4
B-Q12: 如何擴充支援更多副檔名?
- A簡: 新增比對規則與對應樣板,或以通用集合(多副檔名)對應到特定 targetPattern。
- A詳: 若相機產生 MOV/MP4/CR2/NEF 等,流程中加入副檔名比對與歸類映射。對影片與 RAW 可各自指定獨立 targetPattern。為避免硬編碼,配置化副檔名清單更彈性;也可在掃描時用白名單過濾,減少誤處理非影像檔。
- 難度: 中級
- 學習階段: 進階
- 關聯概念: A-Q9, C-Q5, D-Q7
B-Q13: 設定檔如何載入與解析?
- A簡: 透過 ConfigurationManager.AppSettings 讀取鍵值,供程式在執行時動態取用。
- A詳: 在 .NET 2.0 中,可用 System.Configuration.ConfigurationManager 讀取 appSettings(如 default.title、各 targetPattern 與 arguments)。啟動時讀入並解析 arguments 列表為欄位映射,後續依需求取對應值。設定檔讓行為可配置而不需重編譯,是 DevOps 友好的關鍵。
- 難度: 中級
- 學習階段: 核心
- 關聯概念: A-Q10, C-Q2, D-Q1
B-Q14: 錯誤處理與日誌設計該注意什麼?
- A簡: 不中斷批次、清楚記錄錯誤、標示檔案來源與原因;提供重試或跳過策略。
- A詳: 批次處理易遇到單檔異常(檔案鎖定、路徑過長、讀取 EXIF 失敗)。應以 try-catch 包裹單筆處理,將錯誤(檔名、來源路徑、例外訊息)寫入日誌,並繼續後續項目。對可恢復錯誤提供重試或跳過設定,避免整批中斷。日誌也便於追蹤與回溯。
- 難度: 中級
- 學習階段: 進階
- 關聯概念: D-Q5, D-Q8, D-Q9
B-Q15: 為什麼命令列更利於自動化與整合?
- A簡: 易與批次、排程、備份、版本控制整合,讓歸檔成為可重現的標準流程。
- A詳: 命令列工具可在排程器定時執行、由批次或 PowerShell 包裝成多步驟工作流、與備份工具銜接,並且設定檔可版本控制。相較 GUI 需人工點擊,CLI 易於重現、可審核、可記錄,適合以「程式碼治理資料」的理念將日常歸檔標準化。
- 難度: 初級
- 學習階段: 核心
- 關聯概念: A-Q14, C-Q10, D-Q8
Q&A 類別 C: 實作應用類(10題)
C-Q1: 如何安裝與準備執行環境?
- A簡: 先安裝 .NET Framework 2.0,下載解壓執行檔,確認可從命令列呼叫工具。
- A詳: 步驟:1) 於系統安裝 Microsoft .NET Framework 2.0(或相容版本)。2) 下載 DigitalCameraFiler 壓縮檔並解壓到固定資料夾(例如 C:\Tools\DCF)。3) 將資料夾加入 PATH 或每次切換到該目錄執行。4) 準備記憶卡讀卡機,確認其磁碟機代號(如 F:\)。注意:若權限受限,避免放於 Program Files;首次執行前先測試「DigitalCameraFiler.exe /?」或直接顯示版本以驗證環境。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: A-Q15, D-Q1, C-Q3
C-Q2: 如何編輯設定檔 appSettings?
- A簡: 於 DigitalCameraFiler.exe.config 編輯 default.title、各 targetPattern 與 arguments。
- A詳: 打開 DigitalCameraFiler.exe.config,設定如下(範例):
儲存後即生效。注意:使用者需確保路徑存在或允許程式建立;日期格式可調整。
- 難度: 初級
- 學習階段: 核心
- 關聯概念: A-Q10, A-Q11, B-Q13
C-Q3: 如何實際執行一次歸檔?
- A簡: 於命令列至工具目錄,執行「DigitalCameraFiler.exe F:\ 公園外拍」完成搬運與命名。
- A詳: 具體步驟:1) 插入記憶卡,確認磁碟代號(例 F:\)。2) 開啟命令提示字元,cd 至工具目錄。3) 輸入:DigitalCameraFiler.exe F:\ 公園外拍。4) 等待工具掃描 F:\DCIM,依設定檔樣板生成目標路徑並移動檔案。5) 驗證輸出,如:c:\photos\2006-1102 [公園外拍]\Canon PowerShot G2 #IMG_1234.jpg。注意:主題含空白請加引號。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: A-Q4, A-Q12, B-Q1
C-Q4: 如何自訂命名以加入相機型號與原檔名?
- A簡: 在 photo.targetPattern 使用 {Model} 與 {FileNameWithoutExtension} 欄位組合命名。
- A詳: 在 config 設定 arguments 順序,確保含 Model 與 FileNameWithoutExtension,例如「LastWriteTime,Title,Model,Name,FileNameWithoutExtension」。接著於 photo.targetPattern 置入「…{2} #{4}」形成「相機型號 #原檔名」,如「…\Canon PowerShot G2 #IMG_1234.jpg」。此法可一眼辨識來源並避免不同相機同名檔案衝突。
- 難度: 初級
- 學習階段: 核心
- 關聯概念: A-Q11, B-Q6, B-Q8
C-Q5: 如何分流照片、RAW、影片並處理 THM?
- A簡: 為 photo/general/video 設定不同 targetPattern,THM 規劃刪除或忽略;確保路徑各自獨立。
- A詳: 在設定檔配置:
- photo.targetPattern → c:\photos{0:yyyy-MMdd} [{1}]{2} #{3}
- general.targetPattern → c:\photos{0:yyyy-MMdd} [{1}]{3}
- video.targetPattern → c:\video{0:yyyy-MMdd} [{1} #{4}].avi 並於程式或批次流程將 THM 列入忽略或刪除(原批次:del /f /q)。注意影片常分至獨立磁碟,避免與相片爭用空間。
- 難度: 初級
- 學習階段: 核心
- 關聯概念: A-Q9, B-Q3, B-Q4
C-Q6: 如何為多台相機避免檔名衝突?
- A簡: 在命名樣板加入 {Model},或加上序號/年月日,確保路徑唯一。
- A詳: 建議樣板「…{0:yyyy-MMdd} [{1}]{2} #{4}」,其中 {2}=Model、{4}=FileNameWithoutExtension。這會產生如「Canon PowerShot G2 #IMG_1234.jpg」,不同相機即使原檔名相同也能區分。若仍可能重名,可加短雜湊或流水號,並在搬運前檢查存在即改名或跳過。
- 難度: 中級
- 學習階段: 核心
- 關聯概念: B-Q6, B-Q8, D-Q4
C-Q7: 如何指定或省略主題(Title)?
- A簡: 命令列第二參數指定主題;若省略,使用 default.title,確保命名完整。
- A詳: 執行如「DigitalCameraFiler.exe F:\ 公園外拍」會將「公園外拍」寫入樣板中的 {Title} 位置。若未提供,程式落到 default.title(如「未定標題」)。樣板可設計在資料夾名稱中顯示主題,便於檔案總管瀏覽。注意主題含空白需使用引號包住。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: A-Q12, B-Q9, C-Q3
C-Q8: 如何將影片歸檔到獨立磁碟?
- A簡: 將 video.targetPattern 指定到獨立路徑/磁碟,如 D:\videos{日期與主題}。
- A詳: 在設定檔將 video.targetPattern 設為「D:\videos{0:yyyy-MMdd} [{1} #{4}].avi」。搬運時影片即寫入 D 槽,減少對相片磁碟 I/O 影響。若新增 MOV/MP4,亦可複用此樣板。注意 D 槽可預先建立「input」或「raw」子資料夾,利於後續轉檔或壓縮流程。
- 難度: 初級
- 學習階段: 核心
- 關聯概念: A-Q13, B-Q3, D-Q9
C-Q9: 如何從既有批次檔遷移到本工具?
- A簡: 將批次檔邏輯轉為設定檔樣板與引數,保留路徑結構並用工具接手搬運。
- A詳: 步驟:1) 盤點批次檔的規則(日期格式、主題位置、影片分流、THM 清理)。2) 在 config 以 targetPattern 重現命名,確認 arguments 包含所需欄位。3) 若需要清理 THM,可保留一段簡短批次或在流程中忽略。4) 用少量樣本測試,確認路徑與檔名如預期。5) 將舊批次退場,統一用工具執行。
- 難度: 中級
- 學習階段: 核心
- 關聯概念: B-Q11, C-Q2, C-Q5
C-Q10: 如何用工作排程器自動化歸檔?
- A簡: 建立排程工作,插卡後按時或插入事件觸發執行工具命令列。
- A詳: 實作:1) 在工作排程器建立新工作,動作指向 DigitalCameraFiler.exe。2) 引數填入固定來源(如 F:\)與 default.title 或預留。3) 觸發器可設定每日某時或以「事件觸發」方式(插入裝置時)。4) 設定工作執行帳號有目的地寫入權限。5) 測試排程,檢查日誌與輸出路徑。注意:移動操作請避免與同步/備份同時進行。
- 難度: 中級
- 學習階段: 進階
- 關聯概念: A-Q14, B-Q15, D-Q8
Q&A 類別 D: 問題解決類(10題)
D-Q1: 執行時出現「找不到 .NET Framework 2.0」怎麼辦?
- A簡: 安裝 .NET 2.0 或相容版本,確保正確安裝於系統並重試;必要時以系統更新修復。
- A詳: 症狀:程式無法啟動、彈出缺少 .NET 的訊息。原因:系統未安裝 .NET 2.0 或安裝不完整。解法:1) 從微軟官網安裝 .NET 2.0(或安裝更高版本但確保向下相容)。2) 如有安裝但仍失敗,執行修復或安裝必要的 Windows 更新。3) 確認執行檔未被防毒隔離。預防:在安裝工具前先檢查 .NET 環境並建立安裝文件。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: A-Q15, B-Q13, C-Q1
D-Q2: 歸檔後日期不正確怎麼辦?
- A簡: 檢查是否使用 EXIF 拍攝時間;必要時改以 EXIF 為主,或修正讀卡/複製保留時間設定。
- A詳: 症狀:目錄日期與實際拍攝日不符。原因:使用 LastWriteTime 而非 EXIF;或複製過程改變時間戳。解法:1) 若工具支援,改以 EXIF DateTimeOriginal;2) 確認 arguments 與樣板使用的日期欄位;3) 使用保留原時間戳的複製方式。預防:養成拍完即歸檔,避免跨日累積;測試不同讀卡器/作業流程對時間的影響。
- 難度: 中級
- 學習階段: 核心
- 關聯概念: A-Q7, B-Q7, C-Q2
D-Q3: 主題或路徑含中文出現亂碼/問號?
- A簡: 以引號包住參數、確保系統編碼與字體支援,並避免不支援的特殊字元。
-
A詳: 症狀:中文主題顯示為 ??? 或命令列截斷。原因:命令列編碼頁或字型、未加引號、使用不允許的字元。解法:1) 命令列參數加引號;2) 確認 Windows 語系設定與字體;3) 避免使用保留字元(: * ? “ < > )。預防:於設定檔與命令列統一使用可接受字符集,並先以測試主題驗證輸出。 - 難度: 初級
- 學習階段: 核心
- 關聯概念: C-Q3, C-Q7, B-Q2
D-Q4: 檔名重覆導致覆蓋或搬運失敗?
- A簡: 在樣板加上相機型號與原檔名、序號或雜湊;搬運前檢查存在則改名或跳過。
- A詳: 症狀:不同相機同名檔案覆蓋或移動衝突。原因:樣板唯一性不足。解法:1) 加入 {Model} 與 {FileNameWithoutExtension};2) 如仍衝突,附加序號或短雜湊;3) 實作存在檔名時自動遞增策略。預防:規劃能區分來源的命名規則,並在流程初期即檢查目標是否存在。
- 難度: 中級
- 學習階段: 核心
- 關聯概念: B-Q8, C-Q6, B-Q2
D-Q5: 出現「存取被拒」或權限不足如何處理?
- A簡: 檢查目的地資料夾權限、避免受控資料夾、以具權限帳號執行或改用非系統磁碟。
- A詳: 症狀:無法建立目錄或移動檔案。原因:目標在受保護路徑、使用者無寫權限、檔案被鎖。解法:1) 將目標設定在使用者文件或資料磁碟;2) 以有權限帳號執行;3) 關閉占用檔案的程式。預防:部署時設定正確 ACL;避免使用 Program Files、Windows 目錄作為輸出。
- 難度: 初級
- 學習階段: 核心
- 關聯概念: B-Q10, C-Q3, C-Q8
D-Q6: 記憶卡路徑錯誤或未偵測到 DCIM?
- A簡: 確認磁碟機代號、DCIM 目錄是否存在,必要時手動指定正確來源路徑。
- A詳: 症狀:執行後沒有檔案被處理。原因:讀卡機代號不同、相機未建立 DCIM、路徑拼寫錯。解法:1) 於檔案總管確認磁碟代號;2) 檢查 DCIM 是否在根目錄;3) 允許自訂來源子路徑;4) 以少量測試檔驗證流程。預防:習慣在執行前檢查來源路徑與權限。
- 難度: 初級
- 學習階段: 基礎
- 關聯概念: A-Q4, C-Q3, B-Q1
D-Q7: 影片縮圖 THM 未刪除或誤刪怎麼辦?
- A簡: 決定策略:忽略、移動到垃圾桶或獨立資料夾;避免誤刪需要的 THM。
- A詳: 症狀:THM 殘留造成目錄雜亂,或誤刪需要的縮圖。原因:流程未定義或誤判。解法:1) 將 THM 納入忽略列表;2) 如需保留,分流至「thumbnails」資料夾;3) 使用「回收桶」模式而非永久刪除。預防:先以小樣本驗證策略,再套用到全量。
- 難度: 初級
- 學習階段: 核心
- 關聯概念: B-Q4, C-Q5, B-Q12
D-Q8: 搬運中斷或部分檔案遺失如何診斷?
- A簡: 檢查日誌、比對來源與目標數量、找出失敗檔案並重試;注意與同步程式衝突。
- A詳: 症狀:檔數不一致、缺檔。原因:權限、路徑過長、檔案被鎖、同步/防毒干擾。解法:1) 檢查錯誤日誌;2) 比對來源/目標檔列表;3) 排除同步工具與防毒影響;4) 對失敗清單重試。預防:在低干擾時段執行,使用穩定的讀卡器與 USB 連接。
- 難度: 中級
- 學習階段: 核心
- 關聯概念: B-Q14, C-Q10, D-Q5
D-Q9: 路徑過長(超過 260 字元)怎麼解?
- A簡: 簡化樣板、縮短主題與巢狀層級;必要時啟用長路徑支援或改磁碟根目錄。
- A詳: 症狀:移動失敗並提示路徑過長。原因:深層資料夾與冗長主題。解法:1) 減少巢狀層級;2) 縮寫主題;3) 將根路徑改為短路徑(如 D:\p\);4) 在新系統啟用長路徑策略。預防:設計樣板時考慮最長情況並建立命名守則。
- 難度: 中級
- 學習階段: 核心
- 關聯概念: A-Q13, C-Q8, B-Q2
D-Q10: 圖片旋轉方向顯示錯誤怎麼辦?
- A簡: 檢查 EXIF Orientation 與檢視器支援;必要時批次實體旋轉並更新 EXIF。
- A詳: 症狀:直拍照片顯示橫向。原因:檢視器未尊重 EXIF Orientation,或未做實體旋轉。解法:1) 使用支援 EXIF 的檢視器(含 Windows 版本差異);2) 以 exiftool/影像編輯器批次實體旋轉並更新 Orientation;3) 在自動化流程中加入轉正步驟(若工具支持)。預防:維持一致檢視器,避免反覆旋轉導致畫質損失。
- 難度: 中級
- 學習階段: 進階
- 關聯概念: A-Q6, B-Q5, C-Q5
學習路徑索引
- 初學者:建議先學習哪 15 題
- A-Q1: 什麼是 DigitalCameraFiler?
- A-Q2: 為什麼需要記憶卡歸檔工具?
- A-Q3: 與 Picasa/Adobe 等的差異?
- A-Q4: 什麼是 DCIM?
- A-Q5: 批次檔與專用工具差異?
- A-Q7: 為何複製日期不精確?
- A-Q8: 日期 + 主題命名的價值?
- A-Q9: 支援檔案類型與分類?
- A-Q10: 什麼是 targetPattern/arguments?
- A-Q11: 佔位符與格式化如何對應?
- A-Q12: default.title 的用途?
- C-Q1: 如何安裝與準備環境?
- C-Q2: 如何編輯設定檔?
- C-Q3: 如何執行一次歸檔?
- D-Q1: 找不到 .NET 2.0 怎麼辦?
- 中級者:建議學習哪 20 題
- B-Q1: 工具整體流程如何運作?
- B-Q2: 檔名與路徑生成機制?
- B-Q3: 如何判定檔案類型並分流?
- B-Q4: 為何要處理 THM?
- B-Q5: 取得 EXIF 與檔案屬性?
- B-Q6: 相機型號如何讀取與使用?
- B-Q7: 日期欄位來源與策略?
- B-Q8: 如何避免重名與覆蓋?
- B-Q9: 命令列與 default.title 交互?
- B-Q10: 目標資料夾自動建立?
- B-Q13: 設定檔如何載入解析?
- B-Q15: 命令列自動化優勢?
- C-Q4: 自訂命名加入型號與原檔名
- C-Q5: 分流照片、RAW、影片與 THM
- C-Q6: 多台相機避免衝突
- C-Q7: 指定或省略主題
- C-Q8: 影片歸檔至獨立磁碟
- C-Q9: 從批次檔遷移
- D-Q2: 日期不正確怎麼辦?
- D-Q4: 檔名重覆怎麼辦?
- 高級者:建議關注哪 15 題
- B-Q12: 擴充支援更多副檔名
- B-Q14: 錯誤處理與日誌設計
- D-Q3: 中文亂碼/問號處理
- D-Q5: 權限不足/存取被拒
- D-Q6: 路徑錯誤或未偵測到 DCIM
- D-Q7: THM 未刪/誤刪
- D-Q8: 搬運中斷或遺失
- D-Q9: 路徑過長
- D-Q10: 圖片旋轉方向錯誤
- C-Q10: 工作排程器自動化
- A-Q6: 什麼是 EXIF?
- A-Q13: 為何影片與相片分開儲存?
- A-Q14: 命令列工具的核心價值?
- B-Q6: Model 欄位深入應用
- B-Q7: 日期回退與可靠性策略
說明:以上 FAQ 由文章內容與其延伸常見問題彙整,涵蓋概念、原理、實作與疑難排解,並提供關聯索引用於建立學習地圖。