我希望能够运行一个文本编辑器从我的应用程序,作为由用户在TEXT_EDITOR环境变量。现在,假设没有什么是可变的,我想到默认的文字编辑程序,船舶与OS x.它是犹太教以硬编码和应用程序/文字编辑.应用程序/Contents/mac os/文字编辑进入我的应用程序,或是否有更好的办法来调程序?

编辑:为了记录在案,我仅限于运行的一个具体的应用程序的道路,在C。我不打开路径以文本文件。

编辑2:严重的人,我不会打开一个文件在这里。我要求有关应用程序的路径的原因。

有帮助吗?

解决方案

在你的第二次编辑中,它听起来好像你只想获得TextEdit的路径,这可以通过使用NSWorkspace方法absolutePath ForApp BundleWithIdentifier轻松完成:

NSString *path = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:@"com.apple.TextEdit"];

其他提示

Mac OS X有一个机制,称为"一类型的标识",使用它来跟踪协会之间的数据类型和应用程序,可以处理它们。子系统,用于管理这是启动服务。你可以做两种情况之一:

  • 如果你有一个文件有一个合理的众所周知的道路扩展,例如 .txt, 你可以只是问问 NSWorkspace 打开文件,在适当的应用程序。

  • 如果你没有一个众所周知的道路扩展,但是你知道是什么类型的数据,你可以问问发射服务看起来默认的程序类型,然后要求 NSWorkspace 打开文件的具体应用程序。

如果你做的这样你会得到相同的行为,因为查找,你不会有叉()/exec()或使用的系统()只是打开一个文件。

我相信硬编码“应用程序”如果用户的语言设置不是英语,则无效。例如,在Norsk中,“Applications”文件夹名为“Programmer”。

关于国际化的Apple文档是此处。从第45页开始是关于处理本地化路径名的部分。

我相信Mac OS X提供了默认的应用程序机制,因此.txt将在TextEdit.app或Emacs或GVim或用户指定的任何内容中打开。然而我在网上找不到任何东西。

您可以从应用程序运行以下命令:

open <full path to text file>

这将在默认文本编辑器中打开文本文件。您可以使用 open 命令打开任何文件类型。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top