FAQ

常見問題:macOS(Finder)標籤機制與本應用的實現說明

1. macOS 的標籤(Finder Tags)是什麼?存在哪裡?

Finder 標籤屬於檔案的元數據,不會寫入檔案內容本身,而是儲存在檔案的擴展屬性(xattr)裡,主要鍵名是:

其內容是一個二進制 plist,本質上是「標籤陣列」。每個標籤元素包含標籤名顏色編號,顏色編號範圍 0–7(0 無色,1 灰,2 綠,3 紫,4 藍,5 黃,6 紅,7 橙)。

因此:


2.關於舊擴展屬性 com.apple.FinderInfo

com.apple.FinderInfo 是較早期 macOS/Finder 的機制之一:

更具體來說:


3. 多語言問題:為什麼同一個顏色在不同語言系統會變成「不同標籤」?

macOS 寫入的是本地化後的標籤名稱字串

它們在系統看來是兩個不同標籤。 本應用透過系統 API 取得預設顏色標籤名稱,因此返回結果會受系統語言環境影響(「系統設定 → 通用 → 語言與地區 / 界面語言」,選擇「自動」時跟隨當前系統語言)。如果系統語言與應用語言不一致,就可能出現標籤名稱不一致的情形。


4. 為什麼應用設定中要和 Finder 的標籤配置保持一致?


5. 標籤元數據在不同磁盤/網絡位置如何保存?(APFS / AppleDouble / NTFS ADS)

5.1 APFS(本機磁盤)——原生保存 xattr(最可靠)

APFS 原生支援擴展屬性,標籤元數據直接保存在檔案自身的 xattr 中。

5.2 不支援/不完整支援 xattr 的位置——AppleDouble(._原檔名

當目標檔案系統或協議無法可靠保存 xattr(常見於 FAT32、exFAT、網路磁碟:SMB/WebDAV/NFS 等),macOS 會把元數據存到 AppleDouble 伴隨檔案:

可見性:

重要提示(標籤「丟失」的常見原因):

5.3 SMB 连接 NTFS:可能使用 ADS(可選資料流)

當透過 SMB 存取 NTFS 且滿足伺服器/協議配置條件時,macOS 可能不會生成 ._ 檔案,而是把元數據寫入 NTFS 的 ADS(Alternate Data Streams,可選資料流)

但要注意:


6. 如何查看檔案的標籤 xattr?

命令行 xattr 不方便:它不支援處理/顯示 com.apple.metadata:_kMDItemUserTags 这類二進制 plist屬性,必須使用 -px 选项以十六進制方式才能正確輸出。

建議使用第三方工具:


7. Spotlight 与標籤有什麼關係?標籤是否依賴 Spotlight?


8. 本應用的「增強索引」做了什麼?

當 Spotlight 无法覆蓋(外接磁盤/網路磁盤/隱私排除目錄等)時,本應用提供增強索引: