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

Vik*_*sal 2 macos cocoa objective-c

我需要使用 Objective c 获取 OSX 上所有已安装的应用程序

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

我正在终端上运行这个命令

“system_profiler SPApplicationsDataType -xml”

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

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

提前致谢

小智 5

您可以使用 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
}
Run Code Online (Sandbox Code Playgroud)

苹果文档参考:

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