文件下载位置的思考

沙盒(sanBox)

  1. 沙盒目录

    • Documents此文件下的数据会被iTunes同步,用于存储的数据类型为不可再生的数据
      • Documents/Inbox此文件下的数据会被iTunes同步,该目录用来保存由外部应用请求当前应用程序打开的文件。
        比如我们的应用叫A,向系统注册了几种可打开的文件格式,B应用有一个A支持的格式的文件F,并且申请调用A打开F。由于F当前是在B应用的沙盒中,我们知道,沙盒机制是不允许A访问B沙盒中的文件,因此苹果的解决方案是讲F拷贝一份到A应用的Documents/Inbox目录下,再让A打开F。
    • Library除了Caches子目录外的其他数据会被iTunes同步,苹果建议用来存放默认设置或其它状态信息。
      • Library/Caches此文件下的数据不会被iTunes同步,主要是存储缓存文件,用户使用过程中缓存都可以保存在这个目录中,这个目录就用于保存那些可再生的文件数据,比如网络请求的数据。鉴于此,应用程序通常还需要负责删除这些文件。
      • Library/Preferences此文件下的数据会被iTunes同步,存储应用程序的偏好设置文件。例如我们使用NSUserDefaults写的设置数据都会保存到该目录下的一个plist文件中。
      • 其他会被iTunes同步,当你使用更多不同的控件时,系统会默认的在这个文件下,生成一些其他的文件。例如:我使用了WKWebView,然后多了CookiesWebKit两个文件。用于处理系统相关的文件数据。
    • tmp此文件下的数据不会被iTunes同步,存储各种临时文件,保存应用再次启动时不需要的文件
  2. app的考虑

    • 根据上个app的一些设置思考数据的存储
    • 字典数据库文件存储在Documents文件下,其他动态生成的数据库可以放在Documents文件下,但是放到Library/Caches文件下更合适,这个可以根据实际情况在思考。
    • 个人头像以及背景图的设置,偏向于存储在Documents文件下。考虑到数据同步等。
    • 文章界面的html和词典缓存存储在Library/Caches文件下,这些数据是可再生的。
    • 其他。总之原则就是,数据不可再生的数据存储在Documents下,数据可再生的存储在Library/Caches下,能不同步到iTunes的数据,就放到不会同步文件夹下

参考资料
iOS沙盒目录结构解析
iOS底层基础知识-文件目录结构

你可能感兴趣的:(文件下载位置的思考)