以编程方式获取OSX中的应用程序文件夹的名称

Mat*_*oal 2 macos localization objective-c

在美国和欧洲,应用程序文件夹被命名Applications,但在中文或日文本地化下如何命名?

有没有办法以编程方式获取文件夹的名称?

rob*_*off 12

文件系统中的目录名称始终为英语.这些目录可以附加本地化名称以显示给用户,但这些名称不是用于访问目录的名称.来自国际化编程主题:

您需要了解应用程序中的本地化路径名并正确显示它们.本地化路径名仅用于显示目的,在访问文件系统时不应使用.在处理代码中的文件和目录时,应该继续使用实际路径名,包括何时需要写入缓存或用户首选项.您应该使用本地化路径名的唯一时间是您希望通过应用程序的用户界面向用户显示该路径.

也就是说,您可以使用NSSearchPathForDirectoriesInDomains以下方式以编程方式获取路径:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationDirectory, NSLocalDomainMask, YES);
// Returns an NSArray containing the string "/Applications"
Run Code Online (Sandbox Code Playgroud)

您还可以使用-[NSFileManager URLsForDirectory:inDomains:]:

NSArray *urls = [[NSFileManager defaultManager] URLsForDirectory:NSApplicationDirectory inDomains:NSLocalDomainMask];
// Returns an NSArray containing the NSURL "file://localhost/Applications"
Run Code Online (Sandbox Code Playgroud)

如果需要向用户显示本地化名称,请查看国际化编程主题.