首先,系统是一个整体,那每个app是相互独立的,系统为每个app分配了一定的存储空间,也就是我们说的沙盒,每个app有自己独立的沙盒,文件存储在沙盒中,正常情况下app相互之间数据是不可以共享以及访问的,我们在手机上也是看不到每个应用的沙盒的。相互共享访问需要做相关的一些处理才可以,这个后面讲。
1、沙盒
每个iOS程序都有一个独立的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒
下面这个就是一个完整的沙盒目录
Documents: 该目录用于存放用户生成的文件,用户可以直接访问(itunes备份时会备份)。
Library: 该目录用于存放应用的支持文件和数据,通常不需要用户的直接访问。
Caches: Library下的Caches目录用于存放缓存数据,可以被系统清理。
tmp: 临时目录,用于存放临时文件,系统可能会在应用不运行时清除这些文件。
2、把沙盒中的文件共享到“文件”app中
我们说每个app有自己的沙盒,并且沙盒中的文件不能被其他app访问,但是我们有时候需要把app内部的文件暴露出来怎么办呢,比如我在app中下载文件,下载完后希望大家手机可以找到这个文件并常看。这个需求其实是可以实现的,ios系统自带一个叫做文件的app,假如我们能把沙盒的文件弄到这个文件app中来不就解决问题了吗?
首先系统的“文件”这个app不是可以管理全部的app下的