2014-11-06 8 views
0

OSX FUSE 위에 맞춤형 클라우드 기반 스토리지 액세스 솔루션을 구축하고 있습니다. 모든 것이 잘 작동하지만 Finder에서 파일 아이콘을 빌드하기 위해 폴더의 모든 파일을 다운로드하려고하면 문제가 발생합니다.OSXFUSE : Finder에서 파일을 다운로드하여 아이콘을 만들 수 없습니까?

Finder에서이 작업을 수행하지 못하도록하는 좋은 방법과 신뢰할 수있는 프로그래밍 방식 (즉, 코코아 애플리케이션에서 코딩 됨)을 아는 사람이 있습니까? .DS_Store 파일을 작성하거나 Finder 코드 삽입을 기반으로하는 코드도 좋은 해결책이 될 것입니다.

+0

, 참조 : http://stackoverflow.com/questions/31912769/osxfuse-how-to-distinguish-open-file-from-preview-in-finder 내가 권하고 싶지 않다 on OSX future – Mugen

+0

사실 나는 Finder 코드 주입 (응용 프로그램의 다른 기능에도 필요함)으로이 작업을 수행했습니다. 이제 조사는 엘 캐피 탄과 함께 할 것입니다. –

+0

유감스럽게도, 주사는 엘 캐피 탄에서 작동하지 않습니다. 주사에 성공하면 어떻게되는지 알게 될 것입니다. – Mugen

답변

0

찾기 콜백을 필터링하는 한 가지 방법이 있습니다. FUSE 위임 콜백에서 컨텍스트를 가져올 수 있습니다. 이 컨텍스트에서 앱 번들 ID를 얻을 수 있습니다. 앱 번들 ID는 찾기에서 호출을 필터링하는 데 사용할 수 있습니다. 당신이 당신의 드라이브에 뭔가를 보관하려고합니다 경우

찾기, 예를 들어, 번들 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; 
+0

오, 2 년 전에 물어 보았지만 그걸 보지 못했습니다. – DoN1cK