如何在 Mac OS X 上设置已保存文档的 kMDItemKind?

Posted

技术标签:

【中文标题】如何在 Mac OS X 上设置已保存文档的 kMDItemKind?【英文标题】:How to set the kMDItemKind of a saved document on Mac OS X? 【发布时间】:2012-04-09 22:25:47 【问题描述】:

我有一个旧版应用程序(至少从 Mac System 7 移植到 Carbon 到 Cocoa),用户报告该应用程序保存的文本文件的 kMDItemKind 元数据(据我的 mdls 报告)似乎设置为“Microsoft Excel 97 -2004 年工作簿”。旧文件创建者和类型应设置为“cBaS”和“TEXT”(就像在古代向 Apple 注册的那样),旧文件扩展名是“.bas”。

什么设置了 Mac OS X 下保存文件的 kMDItemKind 元数据?

如何确保在保存这些文本文件时正确设置 kMDItemKind,以便我的应用可以打开它们?

【问题讨论】:

【参考方案1】:

您不能直接设置文件的kMDItemKind。它源自其他元数据。文件类型代码'TEXT' 非常通用。这些天来,创建者代码被忽略了。文件扩展名可能是系统所依赖的。

不幸的是,在您的情况下,您有多个处理 .bas 文件的应用程序。系统选择哪一个有点武断,可能会发生变化。 Launch Services 正在根据实际使用的类型以及该应用如何定义与文件扩展名匹配的文档类型或 UTI 来分配类型。

通常,您应该将文件与特定应用程序的关联留给用户。如果他们想更改它,可以在按住 Option 键时使用 Finder 的文件菜单或上下文菜单中的“始终打开方式”进行更改。或者他们可以使用“获取信息”菜单。

最好的办法是改用更可能是唯一的文件扩展名

【讨论】:

唉,似乎有成千上万的当前用户使用当前文件扩展名拥有 15 年以上的旧文件和文档。看起来即使我尝试更新应用程序,他们也可能不得不忍受文件类型混乱...... C'est la vie。从 System 7 到 Mac OS X 10.7 有一条演进路径,但 20 年被忽视的软件演进往往会产生不兼容性。

以上是关于如何在 Mac OS X 上设置已保存文档的 kMDItemKind?的主要内容,如果未能解决你的问题,请参考以下文章

在 mac OS X 上关闭 GUI emacsclient 后如何将焦点返回到终端?

如何在 Mac OS X 上设置 libusb?

如何在Mac OS X上部署开发环境

如何在 OS X 上使用 LaTeX

以编程方式在 Mac OS X 上创建 PPTP ***

如何允许 Python.app 在 Mac OS X 上设置防火墙?