Как программно указать Mac Finder перерисовать значок папки или файла?

#macos #caching #icons #finder

#macos #кэширование #Значки #поиск

Вопрос:

У меня есть процесс, который изменяет значки в файлах с наложением. Однако Finder, похоже, кэширует созданные изображения, что иногда происходит после того, как я создаю наложение (в случае, когда значок является предварительным просмотром файла вместо обычного значка).

Есть ли программный способ, которым я могу сообщить Finder, чтобы он сбросил свой кэш для изображения значка и воссоздал его, не изменяя информацию о файле, в частности дату модификации?

Ответ №1:

Проверьте: ссылка на класс NSWorkspace

Обновите Finder следующим образом:

 [[NSWorkspace sharedWorkspace] noteFileSystemChanged:path];
  

Комментарии:

1. Я не думаю, что это больше работает: (Не могли бы вы, пожалуйста, протестировать это. Не могли бы вы, пожалуйста, создать blah.app пакет приложений на своем рабочем столе со значком. затем откройте замените файл /Contents/Resources/appicon.icns другим appicon.icns, затем запустите это. Я запустил его из ctypes, поэтому, возможно, я сделал это неправильно. Не могли бы вы, пожалуйста, подтвердить, что если вам нужен быстрый javascript-код для создания пакета приложений и вы используете Firefox, вы можете запустить этот код из блокнота со средой, настроенной на браузер, это создаст пакет приложений на рабочем столе: gist.github.com/Noitidart/6a2cbe0b4c74499765be

2. Есть ли какой-либо способ сделать это сейчас на OSX El Capitan и выше?