沙盒路径及文件操作
沙盒 :
iOS应用程序只能在为该程序创建的文件系统中读取文件,不能访问其他地方,这个区域就称作沙盒,该程序所有的非代码文件都要存在这里。
所以iOS中
1. 所有的应用程序都有自己的存储空间。
2. 应用程序不能翻过自己的区域访问其他程序的储存区域
3. 所有应用程序请求的数据都要通过权限检测,不能通过检测也就不能访问文件。
如何获取沙盒目录
1. 获取程序Home目录
NSString *homeDirectory = NSHomeDirectory( );
2. 获取document目录
NSArray *path1 = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory,NSUserDomainMask ,YES);
3. 获取cache目录
NSArray *path2 = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask ,YES);
4. 获取Library目录
NSArray *path3 = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask ,YES);
5. 获取Temp目录
NSString*tempDirectory = NSTemporaryDirectory();
获得了沙盒路径那么就可以往沙盒里写入文件了
用stringByAppendingPathComponent:方法在路径后面添加文件名,就可以执行文件写入操作了。
当然文件写入后也就可以用相同的路径读取文件
文件操作 NSFileManger
1. 创建文件
先创建一个目录 (路径沿用document路径 path1)
NSFileManager *fileManager = [NSFileManagerdefaultManager];
NSString*testDirectory = [path1 stringByAppendingPathComponent:@"test"];
// 在document目录下创建了test目录
[fileManagercreateDirectoryAtPath:testDirectory withIntermediateDirectories:YES attributes:nilerror:nil];
再在test目录下创建文件
接着上面的代码
NSString *testPath = [testDirectorystringByAppendingPathComponent:@"test00.txt"];
NSString *string = @"写入内容";//要写入的内容
[fileManagercreateFileAtPath:testPath contents:[string dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];
这样就把内容写入到了相应路径中的文件中了
2. 获取目录中的所有文件名
有两种方法获取 subpathsOfDirectoryAtPath 和 subpathsAtPath
接上代码
NSString *myDirectory= [path1 stringByAppendingPathComponent:@"test"];
//获取目录路径
NSArray *file =[fileManage subpathsOfDirectoryAtPath: myDirectory error:nil];
// 枚举目录中的文件名
NSArray *files = [fileManage subpathsAtPath:myDirectory ];
3. 用fileManger操作当前目录
[fileManager changeCurrentDirectoryPath:[path1stringByExpandingTildeInPath]];
//更改到待操作目录下
NSString* fileName = @"testFile.txt";
[fileManager createFileAtPath:fileName contents:arrayattributes:nil];
//在当前目录下创建了testFile.txt文件,并把一个数组array的数据写入到了文件中
获得路径后就可以直接在目录中进行文件操作,不必每次都要再获取路径了
4. 删除文件 remove
[fileManager removeItemAtPath:fileNameerror:nil];
直接找文件名然后删除就行了。
由于刚刚接触iOS开发,写文章就是为了做一些笔记,为了以后自己可以看看。
本文借鉴了容芳志大神的文章,如果要看比较系统详细的内容建议去容芳志大神博客上看。
在这里附上网址:http://blog.csdn.net/totogo2010/article/details/7671144 ——LC