为有牺牲多壮志,敢教日月换新天。

[Xcode 实际操作]七、文件与数据-(1)获取程序沙箱结构中常用的几个目录

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

目录:[Swift]Xcode实际操作

本文将演示如何获取程序沙箱结构中,常见的几个目录。

在项目导航区,打开视图控制器的代码文件【ViewController.swift】

 1 import UIKit
 2 
 3 class ViewController: UIViewController {
 4 
 5     override func viewDidLoad() {
 6         super.viewDidLoad()
 7         // Do any additional setup after loading the view, typically from a nib.
 8         
 9         //获得应用程序的路径,
10         //包含三个文件夹:1.文档目录 2.库目录 3.临时目录 4.以及一个程序包
11         //该目录就是应用程序的沙盒,程序只能访问该目录下的内容。
12         let homePath = NSHomeDirectory()
13         //在控制台打印输出程序包主目录的路径
14         print("homePath:\(homePath)")
15         
16         //系统会为每个程序,生成一个私有目录,并随机生成一个数字字母串作为目录名。
17         //在每次程序启动时,这个目录名称都是不同的。
18         //而使用此方法,则可以i获得对应的目录集合。
19         let documentPaths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, 
20         FileManager.SearchPathDomainMask.userDomainMask,
21          true)
22          //获得并输出目录集合中的第一个元素,即沙箱中的文档目录。
23          //应该将应用程序的所有数据文件,写入到这个目录下。
24          //这个目录通常用于存储用户数据。
25         print("documentPath1:\(documentPaths[0])")
26         //创建一个字符串对象,该字符串对象同样表示沙箱中的文档目录
27         let documentPath2 = NSHomeDirectory() + "/Documents"
28         //在控制台打印输出该目录,并与上一条日志比较是否相同
29         print("documentPath2:\(documentPath2)")
30         
31         //使用相同的方式,获得沙箱下的库目录。
32         //这个目录下,包含两个子目录:1.缓存目录 2.参数目录
33         let libraryPaths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.libraryDirectory,
34          FileManager.SearchPathDomainMask.userDomainMask,
35           true)
36         //在控制台打印输出库目录
37         print("libraryPath1:\(libraryPaths[0])")
38         //创建一个字符串对象,该字符串对象同样表示沙箱中的库目录
39         let libraryPath2 = NSHomeDirectory() + "/Library"
40         //在控制台打印输出该目录,并与上一条日志比较是否相同
41         print("libraryPath2:\(libraryPath2)")
42 
43         //使用相同的方式,获得沙箱下的缓存目录。
44         let cachePaths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.cachesDirectory, 
45         FileManager.SearchPathDomainMask.userDomainMask,
46          true)
47         //获得并在控制台打印输出缓存目录,
48         //该目录用于存放应用程序专用的支持文件,
49         //保存应用程序再次启动过程中,需要的信息
50         print("cachePath1:\(cachePaths[0])")
51         //创建一个字符串对象,该字符串对象同样表示沙箱中的缓存目录,
52         let cachePath2 = NSHomeDirectory() + "/Library/Caches"
53         //在控制台打印输出该目录,并与上一条日志比较是否相同
54         print("cachePath2:\(cachePath2)")
55         
56        //创建一个字符串对象,该字符串对象同样表示沙箱中的临时目录
57         let tmpPath1 = NSTemporaryDirectory()
58         //在控制台打印输出沙箱目录的临时文件夹
59         print(tmpPath1)
60 
61         //从沙箱的根目录,也可以定位到临时文件夹
62         let tmpPath2 = NSHomeDirectory() + "/tmp"
63         //在控制台打印输出沙箱目录的临时文件夹
64         //和上面输出的临时文件夹的日志进行比较
65         print(tmpPath2)
66     }
67 
68     override func didReceiveMemoryWarning() {
69         super.didReceiveMemoryWarning()
70         // Dispose of any resources that can be recreated.
71     }
72 }

 

posted @ 2018-11-30 09:17  为敢技术  阅读(193)  评论(0编辑  收藏  举报