美文网首页iOS 知识点iOS开发iOS Developer
iOS的沙盒目录结构和App Bundle

iOS的沙盒目录结构和App Bundle

作者: sun5kong | 来源:发表于2017-08-01 14:13 被阅读163次

每个App的沙河目录结构, 都如下图所示:

沙盒目录

默认情况下, 每个沙盒含有1个应用程序包和三个文件夹: Documents, Library和tmp. 因为沙盒机制, 应用只能在这几个目录读写文件.

MyApp.app:

应用程序包, 这里面存放的是应用程序文件, 包括资源文件和可执行文件.
访问路径:

//object-c
NSString *budlePath = [[NSBundle mainBundle] bundlePath];
//swift
let bundlePath = Bundle.main.bundlePath

Documents:

应用程序在运行时生成的一些需要长久保存的数据(比如: 个人设置等信息), 通过iTunes, iCloud备份时,会备份这个目录下的数据, 此目录下保存相对重要的数据.

//object-c
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
//swift
let path =  NSHomeDirectory() + "/Documents"
let path2 = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)[0]

Library/Caches

从网络上下载的文件或数据(如: 音乐缓存, 图片缓存等) , 此目录下的数据不会自动删除, 需要程序员手动清除该目录下的数据. ITunes, iCloud备份时不会备份此目录下的数据.一般用于存储体积不大, 不需要备份的非重要资源数据.

//object-c
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

NSString* cachesDirectory = [paths objectAtIndex:0];
//swift
let path =  NSHomeDirectory() + "/Library/Caches"
let path2 = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)[0]

Library/Preferences

保存应用程序的偏好设置文件(使用NSUerDefaults类设置是创建, 不应该手动创建), iTunes, iCloud备份时会备份此目录下的数据.该目录由系统自动管理,通常用来储存一些基本的应用配置信息,比如账号密码,自动登录等。

tmp

保存应用运行时产生的一些临时数据,应用程序退出,系统磁盘空间不够,手机重启时,都会自动清除该目录的数据。无需程序员手动清除该目录中的数据.iTunes、iCloud备份时,不会备份次目录。

//object-c
NSString *tempPath = NSTemporaryDirectory();
//swift
let path = NSTemporaryDirectory()

相关文章

  • IOS面试题(二)

    题目来源 iOS 的沙盒目录结构是怎样的? App Bundle 里面都有什么? iOS应用程序只能在为该改程序创...

  • iOS的沙盒目录结构和App Bundle

    每个App的沙河目录结构, 都如下图所示: 默认情况下, 每个沙盒含有1个应用程序包和三个文件夹: Documen...

  • iOS数据存储总结(数据持久化)

    谈iOS的数据存储的时候要先知道APP沙盒的结构和路径.沙盒的结构为: 沙盒的根目录: 搜索文件夹的方式: 数据存...

  • 学习笔记-应用的沙盒

    在iOS设备中,APP的数据存储采用了SandBox(沙盒)机制。 应用的沙盒 目录结构 每个iOS应用都有自己应...

  • 四种存储数据的方式

    目录沙盒机制: ios的数据存储是沙盒机制的,可以通过iOS模拟器查看一下每个app的目录结构 ~/Library...

  • 数据持久化存储

    沙盒 iOS程序默认情况下只能访问自己的目录,这个目录被称作沙盒 沙盒结构 沙盒结构主要为 DocumentLib...

  • 数据存储

    一、应用的 bundle和沙盒 1.基本信息: bundle 和 沙盒都指的是两个文件目录 bundle 存放的是...

  • 小问题集锦

    沙盒与App Bundle 1.AppName.app 应用程序的程序包目录(This is the app’s ...

  • APP沙盒目录结构

    1、APP沙盒目录结构简介 在iOS系统的安全机制中,每个APP都有自己的文件目录,并且只能访问自己的文件目录,该...

  • iOS Swift计算缓存大小及删除缓存文件

    iOS程序为沙盒机制,APP只能访问自己目录下的文件,不能直接访问其他目录内容,每个APP默认都会创建以下目录结构...

网友评论

    本文标题:iOS的沙盒目录结构和App Bundle

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