使用C中的CoreFoundation检查是否存在捆绑包(.app)

时间:2012-02-20 20:20:39

标签: c macos core-foundation

我有用C编写的应用程序。作为其工作的一部分,它需要检查另一个应用程序(基于cocoa的.app应用程序)是否位于正确的目录中。

当然使用标准C我找不到应用程序,因为对于C来说它是目录。是否有任何CoreFoundation功能可以让我检查应用程序是否存在?

由于

2 个答案:

答案 0 :(得分:1)

Bundle Programming Guide有一些CoreFoundation样本用于访问包,然后从中获取信息(如包标识符)。

或者,如果您需要在整个系统中搜索给定的包,您可以使用Spotlight / MD功能来搜索它。

答案 1 :(得分:0)

如果您只关心“某个名为something.app的目录是否存在于给定位置”,那么您可以使用fstat()来确保它存在并且它是一个目录。

如果您想要更有趣的东西,那么您可以使用LSFindApplicationForInfo()来请求给定捆绑ID的FSRefCFURLRef。然后,您可以验证返回的路径是否是您想要的。