Значки остаются прежними после того, как я изменил программу по умолчанию для открытия файла

11

Я только что удалил программу с моего нового Mac. Программа по умолчанию открывала все .rфайлы. Я установил новую программу и установил ее по умолчанию для открытия .rфайлов, но старый значок файлов остается. Значок старой программы остается в каждом .rфайле.

Как я могу обновить значки .r-файлов, чтобы они могли просматривать значки новой программы? И почему этот значок все еще существует на моем Mac, могу ли я удалить значок старой программы?

Mathematica
источник

Ответы:

6

Вы можете попытаться перестроить базу данных LaunchServices из терминала:

/System/Library/Frameworks/ApplicationServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user

Путь lsregisterна Маверикс это:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister

Матеуш Шлосек
источник
Это не работает на
Маверикс
@UpAndAdam Я отредактировал свой ответ.
Матеуш Шлосек
Спасибо за обновление! Постараюсь сегодня вечером и upvote соответственно!
UpAndAdam
lsregisterв macOS 10.12 Sierra существует в пути к файлу, как указано @florin, и выполняется без каких-либо сообщений об ошибках, но не имеет никакого эффекта. Также перезапуск Finder и всей системы не принес никакого эффекта. Я изменил ассоциацию .TXT (обычный текст) с TextEdit на TextWrangler и снова обратно на TextEdit, но он по-прежнему показывает значки TextWrangler для текстовых файлов.
porg
1
Может быть, sudo lsregister …будет работать. Подозреваю, что поскольку в командной строке содержится аргумент -domain system, который, как я полагаю, требует прав администратора. Хотя я не получил никакого сообщения об ошибке, намекающего таким образом, но, возможно, это lsregisterреализовано так минимально без какой-либо обратной связи, потому что, как помощник фреймворка, он, вероятно, не предназначен для запуска не программно. Я предполагаю, что пользовательские кеши LaunchServices были очищены должным образом, но не системные кеши. Тем не менее нашел рабочее решение для macOS Sierra 10.12.1, см. Apple.stackexchange.com/a/260487/11510
porg
1

Для Yosemite 10.10.4 используйте:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user
Флорин
источник
Не работает для меня
Ариэль
Не работает для меня также на OS X 10.10.4
Camaleo
Эта команда ничего не делала, пока я не перезапустил машину. После перезапуска он избавился от предыдущей ассоциации, но не связал новую. Странный.
Изаки
0

На MacOS Сьерра 10.12.1lsregister решение , предоставляемое @Mateusz Szlosek не работал.

Но это решение сработало : сбросить кэш иконок на MacBook

Тем не менее, изменение приложения по умолчанию для типа файла через Finder «Открыть с помощью…» не вызывает немедленного обновления значков на рабочем столе и в окнах Finder. Это ошибка.


Немного критики в конце : как давний пользователь Apple, я всегда предпочитал мгновенную обратную связь и обновление графического интерфейса macOS, а не Windows, где у вас было и все еще приходится выполнять много ручного обновления и больше нагрузки / предосторожности для пользователя из-за из-за отсутствия межпроцессной синхронизации / осведомленности (т. е. переименование файла в проводнике, когда он открыт в другом приложении, приведет к проблемам еще в 2016 году).

Мгновенное межпроцессное взаимодействие всех стандартных приложений и всех приложений, использующих стандартные платформы, - это то, что прекрасно для Mac, т. Е. Повторное включение сетевого интерфейса и Safari автоматически загружает содержимое вкладки в режиме ожидания браузера, переименовывая файл в Finder, когда он был открыт. без проблем, изменение значка и его обновление в каждом экземпляре представления (Finder, файловый диалог приложений, значок в строке заголовка приложения) и т. д.

Ненавижу видеть, как эти качества исчезают. Apple явно пренебрегает своими профессиональными пользователями Mac из-за пользователей iOS и их облачных сервисов. С iCloud Apple совершенствует синхронизацию между устройствами, но не обеспечивает идеальной синхронизации в Mac, как это было раньше.

PORG
источник
0

вышеупомянутое решение не сработало для меня ... так что это то, что я пытался, и это сработало ... Я объясняю это здесь, потому что, если вышеупомянутое решение не работает для кого-то, то он / она может просто перезагрузить свой Mac в Вход в безопасный режим, затем выключение и загрузка в нормальном режиме ... Проблема решена :)

FaISalBLiNK
источник