OSXFUSE: не разрешать Finder загружать файлы для создания иконок?

Я создаю пользовательское облачное решение для доступа к хранилищу поверх OSX FUSE. Все работает нормально, однако есть проблема с Finder, который пытается загрузить все файлы в папке для создания значков файлов.

Кто-нибудь знает хороший и надежный программный способ (т.е. кодированный в моем приложении Какао) запретить Finder делать это? Код, основанный на создании файлов.DS_Store или на основе внедрения кода Finder, также будет хорошим решением.

1 ответ

Есть один способ отфильтровать обратные вызовы поиска. Вы можете получить контекст из любого обратного вызова делегата FUSE. Из этого контекста вы можете получить идентификатор пакета приложения, который можно использовать для фильтрации вызовов из поиска.

У Finder должен быть идентификатор пакета "com.apple.finder"

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

BTW- "com.apple.appkit.xpc.openAndSavePanelService" панель открытия и сохранения также будет читать файлы для создания значков.

NSDictionary *context = [GMUserFileSystem currentContext];
pid_t pid = [context[kGMUserFileSystemContextProcessIDKey] intValue];

NSRunningApplication *appFromPid = [NSRunningApplication runningApplicationWithProcessIdentifier:pid];
NSString *bundleId = appFromPid.bundleIdentifier;
Другие вопросы по тегам