У меня нет ответа для Windows Explorer.Для MacOS пользовательский значок файла сохраняется в ветке ресурсов файла как kIconFamilyType
с идентификатором kCustomIconResource
.Пользовательский значок для папки хранится в файле с именем Icon\r
(\ r означает mac newline) в папке.Для томов пользовательский значок находится в файле .VolumeIcon.icns
в корне тома.В каждом случае вы должны установить флаг kHasCustomIcon
Finder для элемента.
Какао не дает вам доступ к ветке ресурса или флагам Finder.Используйте FSSetCatalogInfo, чтобы установить флаги Finder.Используйте FSCreateResourceFork, AddResource и CloseResFile, чтобы добавить пользовательское семейство значков в файл.Те же вызовы ветвления ресурса используются для файла пользовательского значка в папке.
Обычный способ установить значок - вставить его из окна Get Info Finder или отправить Finder событие apple.Вы можете отправлять яблочные события из какао, но это не поможет iPhone.
Чтобы создать файл на iPhone с ветвлением ресурса, вам, вероятно, придется создать zip-архив, в котором будет создан ресурсвилка в молнии.Вам нужно будет вручную создать оболочку ветки ресурса вокруг данных семейства значков.Структура ветки ресурса хорошо документирована.
Вероятно, было бы проще иметь вспомогательное приложение на MacOS.