我需要打开一个NSSavePanel,用户库文件夹作为目标文件夹。通常,我会在~/Library/
中输入[NSSavePanel beginSheetForDirectory]
来执行此操作。
只要应用程序没有沙箱,这样就可以正常工作。对于沙盒应用程序,这将导致NSSavePanel
尝试访问应用程序文档“框”内的文件夹。
我不能引用/Users/username/Library/
,因为我在运行时不知道用户username
。那么如何在cocoa中链接到这个路径呢?
答案 0 :(得分:12)
我不确定沙盒是如何适应的,但您可以使用以下命令找到用户的库目录:
NSArray* paths = NSSearchPathForDirectoriesInDomains( NSLibraryDirectory, NSUserDomainMask, YES );
答案 1 :(得分:2)
不确定这是否适用于沙盒应用程序,但这就是我现在的工作方式。这将返回/ User / TheirUserName
-(NSString *)homeDirectory
{
return NSHomeDirectory();
}
答案 2 :(得分:0)
这取决于你想要实现的目标。
~/Library/
文件夹中的数据,可以定义migration strategy以将数据移回沙箱。