macos - 在 2016 年,如何获取文件的 Finder “Kind”?

标签 macos cocoa osx-elcapitan launch-services

This answer说要使用 LSCopyKindStringForURL(),它在过去效果很好,但在 OS X v10.11 中被标记为“已弃用”。

API 文档中没有提及为什么它被弃用。我在 OS X 10.11 发行说明中根本没有看到任何有关 Launch Services API 更改的提及。

现在您应该如何获取文件的 Finder 类型?

最佳答案

如果您转到 header 中的 LSCopyKindStringForURL() 声明 (/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Headers/LSInfoDeprecated.h),您将在注释和弃用属性中找到以下内容:

Use the URL resource property kCFURLLocalizedTypeDescriptionKey or NSURLLocalizedTypeDescriptionKey instead.

这些是分别与 CFURLCopyResourcePropertyForKey()-[NSURL getResourceValue:forKey:error:] 一起使用的资源键。

关于macos - 在 2016 年,如何获取文件的 Finder “Kind”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37765413/

相关文章:

objective-c - 将 NSWindow 拖动到高于菜单栏的位置

cocoa - 带有 NSSearchField 的 Laggy 接口(interface)通过绑定(bind)连接到 NSArrayController

objective-c - 是否可以将 webview 加载到 OS X 中的 NSMenuItem 中?

Qt Creator 断点不会在 el capan 上停止

python - 如何在 MacOS 上的 python 中安装 xgboost?

swift - El capitan cocoapods 0.38.2 找不到 pod?

java - 另一个Maven "Source option 6 is no longer supported. Use 7 or later."

objective-c - 带有 PXListView 的可变高度 NSTextField

objective-c - 防止用户在从远程 ftp 服务器 cocoa 传输文件时重命名文件

cocoa - 为什么在 Objective-C 中使用 initWith.. 方法而不是 "class/factory methods"?