如何在XCode中获得用户桌面的路径?

时间:2012-06-12 23:14:00

标签: ios cocoa path environment-variables

我试过了:

path = @"~/Desktop/files/text.plist";
NSDictionary *aDict = [NSDictionary dictionaryWithContentsOfFile:path];

ResultPath:〜/ Desktop / files / text.plist

path = @"$(HOME)/Desktop/files/text.plist";
NSDictionary *aDict = [NSDictionary dictionaryWithContentsOfFile:path];

ResultPath:$(HOME)/Desktop/files/text.plist

path = [NSHomeDirectory() stringByAppendingString:@"/Desktop/files/text.plist"];
NSDictionary *aDict = [NSDictionary dictionaryWithContentsOfFile:path];

ResultPath:/ Users / my_name / Library / Application Support / iPhone Simulator / 5.1 / Applications / 639DC66A-7092-4ECB-9E48-59935AC1C394 / Desktop / files / text.plist

  1. 有没有办法在XCode中访问用户的桌面路径?
  2. 上面的例子中可以使用环境变量吗?
  3. 编辑:关于第二个问题的进一步解释: 就像MAC控制台中有环境变量(或宏)一样,这些也可以在代码中使用吗?如果可以使用它们,任何人都可以帮助一个例子吗? 比如$ HOME_DIRECTORY或类似的东西。

4 个答案:

答案 0 :(得分:22)

您可以在搜索路径中指定桌面:

NSArray * paths = NSSearchPathForDirectoriesInDomains (NSDesktopDirectory, NSUserDomainMask, YES);
NSString * desktopPath = [paths objectAtIndex:0];

这样做的好处是它不会假设用户如何配置他的Mac,如果他的桌面文件夹不在默认位置,这仍然会找到正确的位置。

答案 1 :(得分:2)

这应该有效:

NSString *pathToDesktop = [NSString stringWithFormat:@"/Users/%@/Desktop/text.txt", NSUserName()];

答案 2 :(得分:1)

我使用此语句,它假定Desktop文件夹位于通常的位置。

[NSURL fileURLWithPath:[NSHomeDirectory()stringByAppendingPathComponent:@"Desktop"];

答案 3 :(得分:-2)

这应该针对您的#1问题:

 NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 NSString* documentsDirectoryPath = [paths objectAtIndex:0];

你能进一步解释你的第二个问题吗? :)