如何确定文件的文件类型(文档类型/ UTI)

时间:2015-06-29 01:36:44

标签: ios macos cocoa uti

我正在处理文档应用。我的文档实际上是一个可以容纳其他任意文档的包。加载我的文档后,我可以使用NSFileWrapper API获取所有这些文件的句柄。我想知道那些NSFileWrapper对象代表什么样的文件,所以我知道如何在我的应用程序中显示它。它是文本文件,图像还是某些二进制文件?

有没有办法获得NSFileWrapper的UTI?我确实在来自AppKit的NSFileWrapper上找到了一个'icon'属性。所以他们必须知道文件是什么才能查找它的图标。

1 个答案:

答案 0 :(得分:1)

您可以向NSWorkspace询问任何文件的UTI:

import Cocoa

let documents = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,
  .UserDomainMask, true)[0] as! String

let documentPath = documents.stringByAppendingPathComponent("test.pages")
  // test.pages will need to exist on the filesystem

NSWorkspace.sharedWorkspace().typeOfFile(documentPath, error: nil)
  // com.apple.iwork.pages.sffpages

我不确定它有多可靠,或者如果有多个应用程序能够打开同一个文件会发生什么。

文档鼓励检查NSError,但不会说出可能发生的错误。