我试图找出是否有可能以编程方式修改Finder标记,这些标记存储在〜/ Library / SyncedPreferences / com.apple.finder.plist 中。
首先,我尝试使用PropertyListSerialization
读取文件,更新值,然后在目标位置替换文件。但是,文件的更新版本始终会重置为原始版本。我相信是因为 cfprefsd 。
然后,我使用了CFPreferences API。但是,CFPreferencesCopyAppValue
和CFPreferencesCopyValue
对于键 FinderTags 和appID com.apple.finder 返回nil。如果我使用〜/ Library / Preferences / com.apple.finder.plist 中的密钥,则可以使用CFPreferencesCopyAppValue
进行读取。
这是我尝试过的:
let appPref = CFPreferencesCopyAppValue("FinderTags" as CFString, "com.apple.finder" as CFString)
->返回nil
let appPref = CFPreferencesCopyAppValue("FinderTags" as CFString, "~/Library/SyncedPreferences/com.apple.finder" as CFString)
->返回nil
let appPref = CFPreferencesCopyValue("FinderTags" as CFString, "com.apple.finder" as CFString, kCFPreferencesAnyUser, kCFPreferencesAnyHost)
->返回nil
let appPref = CFPreferencesCopyValue("FinderTags" as CFString, "~/Library/SyncedPreferences/com.apple.finder" as CFString, kCFPreferencesAnyUser, kCFPreferencesAnyHost)
->返回nil
let appPref = CFPreferencesCopyAppValue("FavoriteTagNames" as CFString, "com.apple.finder" as CFString)
->返回[“”,“红色”,“橙色”,“黄色”,“绿色”,“紫色”,“灰色”]
是否可以修改存储在SyncedPreferences中的com.apple.finder.plist?