沙盒机制Sandbox

什么是沙盒?

是一个封闭, 独立, 安全的一个空间(安全体系)

沙盒特性: 封闭, 独立, 安全

—> 保护用户的数据安全; 

—> 确保各个应用之间的数据无法共享

—> 特例: 通讯录中的数据(征求用户的同意); 相册中的数据; 地理位置(征求用户的同意)

 

1.Documents 文件: 

   1>存储应用的重要的存储文件

   2> iTunes会上传备份

2.Library文件:

    1.)Caches

            1>缓存文件,(像sdwebImage 下载的图片就是缓存在这里)

            2> iTunes不会备份

     2.)Preferences文件:

            1>  程序相关的一些设置文件(震动/开关设置)

              2> iTunes上传备份

3.tmp文件:

     1> 系统会定时不定时地删除该文件夹下所有文件

     2>应用关闭时会清空

     3> iTunes不备份

 

    //1.获取沙盒根目录

    NSString *homePath = NSHomeDirectory();

    NSLog(@"沙盒的根目录:%@", homePath);

    //2.获取沙盒数据容器的Documents目录

       1.NSDocumentDirectory (documents文件)

     2.NSLibraryDirectory(Library文件)

     3.NSCachesDirectory (caches文件)

    NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];

    NSLog(@"Documents路径:%@", documentsPath);

    //3.获取沙盒数据容器的Library目录

    NSString *libraryPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) firstObject];

    NSLog(@"Library路径:%@", libraryPath);

    //4.获取沙盒数据容器的tmp目录

    NSString *tmpPath = NSTemporaryDirectory();

 

    NSLog(@"tmp路径:%@", tmpPath);

 

    //5.获取bundle容器中的图片test.png(xxx.app)

方式一

    NSString *testPath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"png"];

    NSLog(@"test图片的路径:%@", testPath);

   方式二

 

    NSString *testPathStr = [[NSBundle mainBundle] pathForResource:@"test.png" ofType:nil];

 

注意:应用中的图片所放入的沙盒和运行生成的数据所存放的沙盒是两个不同的沙盒,前者是在bundle下的后者是在data下的

 

重命名文件

    NSString *oldPath = [_folderPath stringByAppendingPathComponent:[_fileName stringByDeletingPathExtension]];

    NSString *newPath = [_folderPath stringByAppendingPathComponent:_fileName];

    rename([oldPath UTF8String], [newPath UTF8String]);

 

你可能感兴趣的:(ios_oc)