swift - MacOS KIND 是如何实现的

标签 swift macos

我正在尝试编写一段代码,它不是检查许多不同类型的图像文件的文件扩展名,而是查看文件属性。通过搜索文档,我无法弄清楚 KIND:Image 是否真的是一个文件属性,或者只是 Apple 在 FinderApp 中创建的一个构造,以便让用户更轻松地使用。

我编写了一个片段,用于提取扩展名为 jpeg 的文件的属性,并且对于每个文件,文件类型返回为 NSFileTypeRegular

let attr = try filemanager.attributesOfItem(atPath: pathConfig+"/"+file) as NSDictionary

if file.hasSuffix(ext) {

   print ("Adding \(file) [ \(attr.fileSize()) \(attr.fileType())]")

   print ( attr.fileModificationDate() )
}

有人知道 MacOS 是否保留文件所属类别的属性吗?例如图像文档

最佳答案

要实现与 Finder 中的 Kind 搜索标签类似的功能,您可以使用 UTType ( Link to reference )。

您可以通过使用文件扩展名初始化文件来获取文件的UTType:

let fileType = UTType(filenameExtension: fileURL.pathExtension)

UTTypes 最酷的一点是它们具有层次结构,例如 UTType.jpegUTType.image 的子类型,以及 .png 等其他内容。

如果你想检查一个文件是否是任何类型的图像,你可以这样做

let isImage = fileType.conforms(to: .image)

您可以检查列表中您想要支持的“种类”类型,并使用这些 UTTypes 进行过滤

关于swift - MacOS KIND 是如何实现的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74297382/

相关文章:

ios - 使用对象映射器映射响应

swift - Swift/Vapor 中的 Postgres jsonb 数据

ruby-on-rails - 无法使 Ruby 2.0.0 和 Rails 4.0.0 共存(使用 RVM)

ios - 用于兑换 Mac App Store 促销代码的 URL

macos - 带有 iterm 2 的 zsh 无法识别我的别名

mysql - 另一个 mysql 服务器在 OS X 上已经运行错误

ios - 当用户在应用程序中锁定设备时,如何处理我的应用程序

ios - swift:将字符串转换为 double 问题

ios - 自定义的 EditAction 按钮不触发事件

objective-c - Cocoa 中的 NSView 数组?