我在OSX FUSE之上构建基于云的自定义存储访问解决方案。 一切正常,但是Finder有问题,它试图下载文件夹中的所有文件来构建文件图标。
是否有人知道一种良好可靠的程序化方式(即在我的Cocoa应用程序中编码)禁止Finder这样做? 基于构建.DS_Store文件或基于Finder代码注入的代码也将是一个很好的解决方案。
答案 0 :(得分:0)
有一种方法可以过滤掉finder回调。您可以从任何FUSE委托回调中获取上下文。从该上下文中,您可以获得应用程序包ID,该ID可用于过滤掉finder中的调用。
Finder应该有捆绑ID“com.apple.finder”
但是,例如,如果您尝试将某些内容存档在您的驱动器中,则查找器将具有完全相同的包ID。因此,启用此类过滤将破坏归档,可能还有其他内容。
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;