ios程序为沙盒机制,App只能访问自己目录下的文件,不能直接访问其他目录内容,每个APP默认都会创建以下目录结构Doucments Library tmp
- Preferences: 包含应用程序的偏好设置文件.可以使用NSUserDefaults类来获取和设置程序的偏好,会被iturns同步
- Caches : 用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息,不会被iTunes备份同步
获取目录方法
Documents目录
`NSArray *documrntDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *pathfile = documrntDirectory.firstObject;`
获取Library路径
`NSArray*paths=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);NSString*path=[paths objectAtIndex:0];
NSLog(@"path:%@",path); `
获取Caches路径
`NSArray*paths=NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);NSString*path=[paths objectAtIndex:0];
NSLog(@"path:%@",path);`
获取tmp路径
`NSString*tmp=NSTemporaryDirectory();NSLog(@"tmp:%@",tmp);
`
文件写入
`
NSArray *documrntDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *pathfile = documrntDirectory.firstObject;
[pathfile stringByAppendingPathComponent:@"feng.txt"];BOOL ishave = [[NSFileManager defaultManager]fileExistsAtPath:pathfile]; if (!ishave) { NSLog(@"aleady have"); return; } NSString *str = @"im the king of the world"; NSData *data = [NSData dataWithContentsOfFile:str]; BOOL result = [data writeToFile:pathfile atomically:YES]; if (result) { NSLog(@"success"); }else { NSLog(@"fail"); }
`
文件读取
`
NSArray *documentsPathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [documentsPathArr lastObject];
// 拼接要写入文件的路径
NSString *path = [documentsPath stringByAppendingPathComponent:@"feng.txt"];
// 从路径中读取字符串
NSString *str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@", str);`
得到沙盒下所有文件
`NSFileManager *fileManager = [NSFileManager defaultManager];NSString *document=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) .lastObject]; NSString *feng =[document stringByAppendingPathComponent:@"feng"]; NSArray *fileList ; fileList =[fileManager contentsOfDirectoryAtPath:folder error:NULL]; for (NSString *file in fileList) { NSLog(@"file=%@",file); NSString *path =[folder stringByAppendingPathComponent:file]; NSLog(@"得到的路径=%@",path); }
`