Xcode9学习笔记67 - 打印查看程序沙箱结构中常用的几个目录

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        
        //首先获得应用程序目录的路径,在该目录下有三个文件夹:文档目录、库目录、临时目录以及一个程序包。该目录就是应用程序的沙盒,应用程序只能访问该目录下的内容
        let homePath = NSHomeDirectory()
        print("homePath: \(homePath)\n")//打印程序包主目录的路径
        
        //系统会为每个程序生成一个私有目录,并随机生成一个字符串作为目录名。在每次程序启动时,这个目录名称都是不同的。使用此方法,可以获得对应的目录集合
        let documentPaths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
        //获得并输出目录集合中的第一个元素,即沙盒中的文档目录,应用程序的所有数据文件应该写入到这个目录下,这个目录通常用于存储用户数据
        print("documentPath1: \(documentPaths[0])")
        let documentPaht2 = NSHomeDirectory()+"/Documents"//创建一个字符串对象,同样来用表示沙箱中的文档目录
        print("documentPath2: \(documentPaht2)")//打印并与上一条日志比较是否相同
        
        //获取沙箱下的库目录,它包含两个子目录:缓存目录、参数目录
        let libraryPaths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
        print("libraryPath1: \(libraryPaths[0])")//打印输出库目录
        let libraryPath2 = NSHomeDirectory() + "/Library"//创建一个字符串对象,同样表示沙箱中的库目录
        print("libraryPath2: \(libraryPath2)")//打印并与上一条日志比较是否相同
        
        //获得沙箱下的缓存目录
        let cachePaths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
        //打印输出缓存目录,该目录用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息
        print("cachePath1: \(cachePaths[0])")
        let cachePaht2 = NSHomeDirectory() + "/Caches"//创建一个字符串对象,同样表示沙箱中的缓存目录
        print("cachePath2: \(cachePaht2)")//打印并与上一条日志比较是否相同
        
        let tempPath1 = NSTemporaryDirectory()//当前用户的临时路径
        print(tempPath1)
        let tempPath2 = NSHomeDirectory() + "/tmp"
        print(tempPath2)
    }

  

posted on 2017-11-20 07:58  业余极客  阅读(324)  评论(0编辑  收藏  举报

导航