如何在OSX中使用Objective C获取所有已安装的应用程序

时间:2015-07-29 12:25:39

标签: objective-c macos cocoa

我需要使用目标c

在OSX上获取所有已安装的应用程序

我用Google搜索并发现有人建议使用终端命令执行此操作:

我在终端上运行此命令

  

" system_profiler SPApplicationsDataType -xml"

找到所有应用程序,但我无法从后面的代码中检索终端数据。

请提供一种方法来获取所有已安装的应用程序,或者至少请让我知道从目标c获取终端命令结果。

提前谢谢

1 个答案:

答案 0 :(得分:4)

您可以使用NSFileManager类列出/ Applications目录中的所有项目。

NSArray *urls = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationDirectory inDomains:NSLocalDomainMask];

NSError *error = nil;
NSArray *properties = [NSArray arrayWithObjects: NSURLLocalizedNameKey,
                       NSURLCreationDateKey, NSURLLocalizedTypeDescriptionKey, nil];

NSArray *array = [[NSFileManager defaultManager] 
                 contentsOfDirectoryAtURL:[urls objectAtIndex:0]
               includingPropertiesForKeys:properties
                                  options:(NSDirectoryEnumerationSkipsHiddenFiles)
                                    error:&error];
if (array == nil) {
    // Handle the error
}

Apple Doc参考:

NSFileManager类 https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/index.html#//apple_ref/doc/uid/20000305-SW24

文件系统编程指南 https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/AccessingFilesandDirectories/AccessingFilesandDirectories.html#//apple_ref/doc/uid/TP40010672-CH3-SW25