iOS 每一个 APP 都有本身的存储空间,这个存储空间叫作沙盒. APP能够在本身的沙盒中进行数据存取操做,但不能访问其余 app 的沙盒空间.对 app 作一些数据存储或者文件缓存时,通常都保存在沙盒中.swift
沙盒机制根据访问权限和功能区别分为不一样的目录: document,library,temp,.app, library又包含 caches 和preferences.缓存
- caches: 通常存储的是缓存文件,例如图片视频等,此目录下的文件不会再应用程序退出时删除,在手机备份的时候,iTunes不会备份该目录。
- preferences: 保存应用程序的全部偏好设置iOS的Settings(设置),咱们不该该直接在这里建立文件,而是须要经过NSUserDefault这个类来访问应用程序的偏好设置。iTunes会自动备份该文件目录下的内容.
let homePath = NSHomeDirectory()
复制代码
let documentPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
复制代码
let libraryPath = NSSearchPathForDirectoriesInDomains(.libraryDirectory, .userDomainMask, true)
复制代码
let cachePath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)
复制代码
由系统维护,不须要咱们手动获取文件目录.可借助 UserDefault 维护app
let tmpPath = NSTemporaryDirectory()
复制代码
let path = Bundle.main.resourcePath
let imagePath = Bundle.main.path(forResource: "temp", ofType: "png")
iOS 对文件进行管理须要用到文件管理器: FileManager.spa
FileManager.default.fileExists(atPath: filePath)
code
FileManager.default.createDirectory(atPath: path, withIntermediateDirectories: true, attributes: nil)
视频
FileManager.default.createFile(atPath: path, contents: data, attributes: nil)
图片
FileManager.default.removeItem(atPath: path)
资源
FileManager.default.moveItem(atPath: oldPath, toPath: newPath)
rem
FileManager.default.copyItem(atPath: oldPath, toPath: newPath)
it
FileManager.default.attributesOfItem(atPath: filePath)