在任何情况下,当使用以下代码访问NSArray
时,应用可以在NSDocumentDirectory
中拥有多个路径:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
我只是对事情感到好奇..你们可以和我分享你的经历吗?
答案 0 :(得分:1)
严格来说,您可以获得多个路径,因为您可以传递多个域。
如果您传递单个域,则会得到一个包含单个路径的数组。
但Apple建议不再使用此功能。
来自文档:
您应该考虑使用返回网址的
NSFileManager
方法URLsForDirectory:inDomains:
和URLForDirectory:inDomain:appropriateForURL:create:error:
,这是首选格式。
答案 1 :(得分:0)
不,这将始终返回documentDirectory的一个路径!!
根据目录的不同类型,可能会有所不同,例如,
NSString *path = NSTemporaryDirectory();
上面的行将给出临时目录的路径。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
上面的数组也有一个路径,但这是NSDocumentationDirectory
的路径。
NSSearchPathForDirectoriesInDomains为指定域中的指定目录创建路径字符串列表。该列表按您应搜索目录的顺序排列。
您可以获取文档目录的内容或子目录或任何目录,如
NSArray *pathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSAllDomainsMask, YES);
NSArray *contentOfDocDirectory = [[NSFileManager defaultManager]contentsOfDirectoryAtPath:pathArr[0] error:nil];
NSLog(@"content of document directory : %@",contentOfDocDirectory);