Macos OSXFUSE:不允许Finder下载文件来构建图标?
我正在OSX FUSE之上构建定制的基于云的存储访问解决方案。 一切正常,但Finder有一个问题,它试图下载文件夹中的所有文件来构建文件图标 有人知道一种好的、可靠的编程方法(即在我的Cocoa应用程序中编码)来禁止Finder这样做吗?Macos OSXFUSE:不允许Finder下载文件来构建图标?,macos,cocoa,finder,osxfuse,Macos,Cocoa,Finder,Osxfuse,我正在OSX FUSE之上构建定制的基于云的存储访问解决方案。 一切正常,但Finder有一个问题,它试图下载文件夹中的所有文件来构建文件图标 有人知道一种好的、可靠的编程方法(即在我的Cocoa应用程序中编码)来禁止Finder这样做吗? 基于building.DS_Store文件的代码,或者基于Finder代码注入的代码也将是一个很好的解决方案。有一种方法可以过滤掉Finder回调。您可以从任何FUSE委托回调获取上下文。从该上下文中,您可以获得应用程序包id,该id可用于过滤来自finde
基于building.DS_Store文件的代码,或者基于Finder代码注入的代码也将是一个很好的解决方案。有一种方法可以过滤掉Finder回调。您可以从任何FUSE委托回调获取上下文。从该上下文中,您可以获得应用程序包id,该id可用于过滤来自finder的调用 Finder应该有bundle id“com.apple.Finder” 但是,例如,如果您试图在驱动器中归档某些内容,finder将提供完全相同的bundle id。因此,启用此类筛选将破坏归档,可能还会破坏其他功能 顺便说一句——“com.apple.appkit.xpc.openAndSavePanelService”打开和保存面板也会读取文件来构建图标
NSDictionary *context = [GMUserFileSystem currentContext];
pid_t pid = [context[kGMUserFileSystemContextProcessIDKey] intValue];
NSRunningApplication *appFromPid = [NSRunningApplication runningApplicationWithProcessIdentifier:pid];
NSString *bundleId = appFromPid.bundleIdentifier;
如果这仍然是相关的,请参阅:在OSX Future的这一点上,我不建议使用注入。实际上,我是通过Finder代码注入实现的(应用程序的其他功能也需要注入)。现在调查它对El Capitan有效。不幸的是,注射对El Capitan无效。如果你真的成功注入,我很高兴知道如何:)是的,似乎没有办法,除非寻找黑客/漏洞,这不是我想使用的方式。所以现在需要让Finder Sync插件+检测快速查看读取请求,以禁止从云下载所有数据。另一种可能的方法是使用Apple脚本,但我不喜欢。你如何检测快速查看读取请求?哦,两年前有人问过,没有看到吗