美文网首页
iOS-沙盒详尽

iOS-沙盒详尽

作者: 墨凌风起 | 来源:发表于2019-04-11 11:06 被阅读0次

write主要用于往磁盘目录下写入文件。本篇借write操作也详尽整理一下设备的沙盒目录记忆沙盒目录的操作方法。
沙盒目录下有一下文件夹:

  1. 】 Document:使用此目录存储用户生成的内容。该目录的内容可以通过文件共享提供给用户; 因此,他的目录应该只包含您可能希望向用户公开的文件。
    1.1】Documents/Inbox:使用此目录可以访问外部实体要求您打开应用程序的文件。具体来说,Mail程序会将与您的应用程序关联的电子邮件附件放在此目录中。文档交互控制器也可以在其中放置文件。

该目录的内容由iTunes和iCloud备份。

  1. 】Library: 这是非用户数据文件的任何文件的顶级目录,该文件夹存放不想被用户看到的数据。该文件夹下有两个子目录。
    2.1】 Library/Caches: 保存应用运行时产生的缓存文件,iTunes不会备份,且该目录数据会被清理。
    2.2 】Library/Preferences: 保存应用的偏好设置文件,NSUserDefaults保存的数据,plist文件都放在这里,iTunes 会备份。
  2. 】tmp/ :使用此目录可以编写在应用程序启动之间不需要保留的临时文件。您的应用应该在不再需要时删除此目录中的文件; 但是,当您的应用未运行时,系统可能会清除此目录。
获取文件目录
// 获取沙盒根目录路径
    NSString *homeDir = NSHomeDirectory();
    // 获取Documents目录路径
    NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) firstObject];
    
    //获取Library的目录路径
    NSString *libDir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES) lastObject];
    
    // 获取cache目录路径
    NSString *cachesDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES) firstObject];

    // 获取tmp目录路径
    NSString *tmpDir =NSTemporaryDirectory();

/*使用C函数NSSearchPathForDirectoriesInDomains来获得沙盒中目录的全路径。
FOUNDATION_EXPORT NSArray<NSString *> *NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directory, NSSearchPathDomainMask domainMask, BOOL expandTilde);  用于查找目录,返回指定范围内的指定名称的目录的路径集合。有三个参数:
1.】NSSearchPathDirectory directory 想要查找的目录类型,是个枚举值。
2.】NSSearchPathDomainMask domainMask 表示“想要从哪个路径区域保护区查找”。
typedef NS_OPTIONS(NSUInteger, NSSearchPathDomainMask) {
   NSUserDomainMask =1,      // 用户的主目录
   NSLocalDomainMask =2,     // 当前机器的本地目录
   NSNetworkDomainMask =4,    //在网络中公开可用的位置
   NSSystemDomainMask =8,    // 被苹果系统提供的,不可更改的位置 (/System)
   NSAllDomainsMask = 0x0ffff  // 上述所有及未来的位置
};
3.】BOOL expandTilde 表示是否用波浪线显示部分目录路径。~在*nix系统表示当前用户的Home目录。列如上面获取cache目录路径如果使用NO,那么结果就是cachesDir=~/Library/Caches
*/
文件写入
1.】拼接生成该目录下的文件
NSString * docFile =[documentDirectory stringByAppendingPathComponent:fileName];
2.】往文件写入数据
2.1】NSData写入文件
[data writeToFile:FileName atomically:YES];
2.2】NSString 写入文件
NSError *error = nil;
   [string writeToFile:docFile atomically:YES encoding:NSUTF8StringEncoding error:&error];
   if (error) {
       NSLog(@"写入文件失败:error = %@",error);
   }else{
       NSLog(@"写入文件成功");
   }
2.3】NSDictionary同上类似。
3.】从文件中读取
NSData *data = [NSData dataWithContentsOfFile: docFile];
NSString *string = [NSString stringWithContentsOfFile:docFile encoding:NSUTF8StringEncoding error:nil];

相关文章

  • iOS-沙盒详尽

    write主要用于往磁盘目录下写入文件。本篇借write操作也详尽整理一下设备的沙盒目录记忆沙盒目录的操作方法。沙...

  • iOS-沙盒机制

    一、概述 沙盒:应用程序在安装时,会创建属于自己的沙盒文件,应用程序不能直接访问其他应用程序的沙盒文件。应用程序的...

  • iOS-沙盒文件目录

    iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件,在开发中常常需要数据存储的功能,比如存取文件,归...

  • IOS-重新认识沙盒

    在沙盒里面总共有三个文件夹: 1、Documents 目录:您应该将所有的应用程序数据文件写入到这个目录下。这个目...

  • iOS-沙盒机制-整合篇

    前言:突然想学习一下,沙盒,看了那么多博客,我四处的搜集一下总结一下,为了以后方便学习,留存一篇整合的文章。 一、...

  • iOS-沙盒机制存放文件

    不积跬步,无以至千里不积小流,无以成江海 目录结构默认情况下,每个沙盒含有3个文件夹:Documents, Lib...

  • iOS-缓存的清理

    不积跬步,无以至千里不积小流,无以成江海 具体目录参考iOS-沙盒机制存放文件 计算单个文件的�大小 目录文件的大...

  • IOS沙盒 - OC

    沙盒: 沙盒包含: 沙盒路径获取的方法:

  • Objective-C沙盒结构

    导读: 一、什么是沙盒机制二、沙盒的特点三、沙盒的结构组成四、获取沙盒目录路径 一、什么是沙盒机制 iOS中的沙盒...

  • iOS 数据持久化知识汇总(1)—————存储路径

    一、沙盒和沙盒存储路径 1、沙盒是什么 iOS 每个iOS应用都有自己的应用沙盒,应用沙盒就是文件系统目录 。所...

网友评论

      本文标题:iOS-沙盒详尽

      本文链接:https://www.haomeiwen.com/subject/sbaziqtx.html