刚刚得到了我关于如何获取文档目录的答案的-1。我总是这样做:
NSString *documentsPath = [@"~/Documents" stringByExpandingTildeInPath];
它总是按照我的期望工作。这种方法有没有真正的水下岩石?
不,它并不总是有效。如果您的应用在沙盒中运行(应用商店需要),您将无法获取真正的文档目录。
我刚刚做了一些测试,以下是我得到的:
/Users/<user-name>/Library/Containers/<app-name>/Data/Documents
但我真正的文件是
/Users/<user-name>/Documents
正确的调用方法:NSSearchPathForDirectoriesInDomains()
正如苹果文档所述:
为指定目录中的路径字符串列表 指定的域。列表按应搜索的顺序排列 目录。如果 expandTilde 为 YES,则波形符扩展为 在 stringByExpandingTildeInPath 中描述。
例:
NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)