ios 文件读写


     一、 每个iOS应用SDK都被限制在“沙盒”中,“沙盒”相当于一个加了仅主人可见权限的文件夹,苹果对沙盒有以下几条限制。
     
     (1)应用程序可以在自己的沙盒里运作,但是不能访问任何其他应用程序的沙盒。
     
     (2)应用程序间不能共享数据,沙盒里的文件不能被复制到其他应用程序文件夹中,也不能把其他应用程序文件夹中的文件复制到沙盒里。
     
     (3)苹果禁止任何读、写沙盒以外的文件,禁止应用程序将内容写到沙盒以外的文件夹中。
     
     (4)沙盒根目录里有三个文件夹

     
     Documents:一般应该把应用程序的数据文件存到这个文件夹里,用于存储用户数据或其他应该定期备份的信息。iTunes备份和恢复的时候会包括此目录
     tmp:存放临时文件,即应用程序再次启动不需要的文件.iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除

     Library/Caches:下有两个文件夹,Caches存储应用程序再次启动所需的信息,Preferences包含应用程序偏好设置文件,不过不要在这里修改偏好设置。iTunes不会备份此目录,此目录下文件不会在应用退出删除

因为应用是在沙箱(sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件:

    
    //获取用户主目录
    //第一种
   NSString* path = NSHomeDirectory();
    //第二种
    NSString* user =NSUserName();//获取用户名
    NSString* userPath = NSHomeDirectoryForUser(user);    
    NSLog(@"%@ %@",path,userPath);
    
    //获取document目录
    NSArray* array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString* documentPath = [array objectAtIndex:0];
    NSLog(@"%@",documentPath);
    
    //获取临时目录
    NSString* tempPath = NSTemporaryDirectory();
    NSLog(@"%@",tempPath);
    
    //获取cache目录
    NSString* cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSLog(@"%@",cachePath);
    
    
    //将内容写入文件 在document目录中
    NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString* docDir = [paths objectAtIndex:0];
    if(!docDir)
        NSLog(@"Document目录未找到");
    NSArray* array1 = [[NSArray alloc]initWithObjects:@"内容",@"content", nil];
    NSString* filePath = [docDir stringByAppendingPathComponent:@"testFile.txt"];
    //上面这句话结束之后会filename将包含test.txt文件的完整路径,该文件位于应用程序的Documents目录下,我们可以用filename来创建读取和写入文件。
    if([array1 writeToFile:filePath atomically:YES])//写入文件
    {
        NSLog(@">>write OK");
    }
    
    
    //读取文件
    NSArray* array3 = [[NSArray alloc]initWithContentsOfFile:filePath];
    NSLog(@"%@",array3);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值