iOS一些重要的应用目录

来源:互联网 发布:mac文件拷贝到硬盘 编辑:程序博客网 时间:2024/04/26 08:30


为了安全的缘故,一个应用只能拥有一些目录,用来写入应用的数据或者首选项参数。当一个应用安装到系统,会创建该应用的home目录。以下列出一些home目录下的主要的子目录:

  • <Application_Home>/AppName.app:存放应用程序自身
  • <Application_Home>/Documents/:存放用户文档和应用数据文件
  • <Application_Home>/Library/:应用程序规范的顶级目录,下面有一些规范定义的的子目录,当然也可以自定义子目录,用于存放应用的文件,但是不宜存放用户数据文件,和document一样会被itunes同步,但不包括caches子目录
  • <Application_Home>/Library/Preferences,这里存放程序规范要求的首选项文件
  • <Application_Home>/Library/Caches,保存应用的持久化数据,用于应用升级或者应用关闭后的数据保存,不会被itunes同步,所以为了减少同步的时间,可以考虑将一些比较大的文件而又不需要备份的文件放到这个目录下
  • <Application_Home>/tmp/,保存应用数据,但不需要持久化的,在应用关闭后,该目录下的数据将删除,也可能系统在程序不运行的时候做清楚 ,官方文档摘抄:

    Use this directory to write temporary files that do not need to persist between launches of your app. Your app should remove files from this directory when it determines they are no longer needed. (The system may also purge lingering files from this directory when your app is not running.)

    In iOS 2.1 and later, the contents of this directory are not backed up by iTunes.


    备份和恢复

    iTunes应用可在适当情况下自动处理备份和恢复。然后,应用需要知道备份和恢复的文件放在哪里。

    什么是备份

    你不必为你的应用备份和恢复做任何准备。在iOS 2.2以后,当设备连接到电脑并开始同步后,iTunes会自动增量备份所有文件,但不包括下面的目录:

    • <Application_Home>/AppName.app
    • <Application_Home>/Library/Caches
    • <Application_Home>/tmp

    虽然iTunes备份应用自身,但不是每次同步都这样做。从app store上购买的应用,只在随后的同步过程中被iTunes备份。再之后,iTunes并不在同步操作中备份应用,除非应用自身发生变化,比如应用的升级。

    为了避免同步过程时间过长,你需要对应用中使用的文件放在哪里做出选择。<Application_Home>/Documents目录用来存放用户文档和应用数据文件。临时文件要保存在Application Home/tmp目录下,这样可以在不需要时删除。如果在两次启动中都需要的数据文件,但是不需要备份的,可放置在Application Home/Library/Caches。比如很大的数据文件,尽量放置在Caches目录下,而不是Documents目录下,Documents目录下文件将做备份,这样会很耗时。

    应用更新期间的文件保存

    如果文件需要在应用更新后依然存在,需要放置在:

    • <Application_Home>/Documents
    • <Application_Home>/Library

    • ===========LZ留言===========================
    更多了解查看apple官方文档了解;
    https://developer.apple.com/library/ios/#documentation/FileManagement/Conceptual/FileSystemProgrammingGUide/FileSystemOverview/FileSystemOverview.html#//apple_ref/doc/uid/TP40010672-CH2-SW2

    MAC系统标准获取目录方法,NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    而在ios上也可以通过上面方法去获取,但由于ios上一个个APP都是一个sandbox里运行的,文件系统限制更加严格一些,还提供了NSHomeDirectory()的方法去获取根目录,然后通过扩展文件路径,比如documents等去补齐路径查找文件
0 0
原创粉丝点击