8

我试过了:

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

结果路径:~/Desktop/files/text.plist

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

结果路径:$(HOME)/Desktop/files/text.plist

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

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

  1. 有没有办法在 XCode 中访问用户的桌面路径?
  2. 可以在上面的示例中使用环境变量吗?如何使用?

编辑:关于第二个问题的进一步解释:就像 MAC 控制台中有环境变量(或宏)一样,这些也可以在代码中使用吗?如果可以使用它们,任何人都可以举个例子吗?像 $HOME_DIRECTORY 或类似的东西。

4

4 回答 4

22

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

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

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

于 2013-06-23T10:34:06.407 回答
2

这应该有效:

NSString *pathToDesktop = [NSString stringWithFormat:@"/Users/%@/Desktop/text.txt", NSUserName()];
于 2012-06-13T01:47:06.087 回答
1

我使用这个语句,它假定桌面文件夹在通常的位置。

[NSURL fileURLWithPath:[NSHomeDirectory()stringByAppendingPathComponent:@"Desktop"];
于 2016-03-06T13:43:10.737 回答
-3

这应该为您的 #1 问题做到这一点:

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

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

于 2012-06-12T23:18:03.743 回答