一、沙盒
- 三个目录:Document/Library/tmp
- Document:存放应用程序的数据
- Library:存储程序的默认设置或其他状态信息
- tmp:临时文件
- 获取目录:
NSSearchPathForDirectoriesInDomains(.documentDirectory, .allDomainsMask, true
二、写入/读取文件
写入文件
// 写入文件
func MPWriteToFile(sandBoxPath: FileManager.SearchPathDirectory, filePath: String, fileData: Data, result: (_ success: Bool, _ message: String) -> Void) {// 获取沙盒路径
let sandBoxAbsolutePath: [String] = NSSearchPathForDirectoriesInDomains(sandBoxPath, .allDomainsMask, true)guard sandBoxAbsolutePath.count > 0 else {
result(false, “打开沙盒失败!”)
return
}let fileAbsolutePath: String = sandBoxAbsolutePath[0] + “/(filePath)”
// // 判断是否是一个路径
// let fileAbsolutePathNSString: NSString = NSString(string: fileAbsolutePath)
// guard fileAbsolutePathNSString.isAbsolutePath else {
//
// result(false, “文件绝对路径有误!”)
// return
// }
//
let fileUrlPath: URL = URL(fileURLWithPath: fileAbsolutePath)
// 开始写入
do {
try fileData.write(to: fileUrlPath, options: .atomicWrite)
result(true, “文件写入成功!”)
} catch {
result(false, error.localizedDescription)
return
}
}
读入文件
// 读取文件
func MPReadFromFile(sandBoxPath: FileManager.SearchPathDirectory?, filePath: String, result: (_ success: Bool, _ data: Data?, _ message: String) -> Void) {var fileAbsolutePath: String = “”
if let sandBoxPath = sandBoxPath {
fileAbsolutePath = NSSearchPathForDirectoriesInDomains(sandBoxPath, .allDomainsMask, true)[0] + “/(filePath)”
} else {
fileAbsolutePath = filePath
}let fileUrl: URL = URL(fileURLWithPath: fileAbsolutePath)
var data: Data = Data()
do {
data = try Data(contentsOf: fileUrl, options: .uncachedRead)
} catch {
result(false, nil, error.localizedDescription)
}result(true,data,”文件打开成功!”)
}
三、用户首选项数据
1、保存用户首选项数据
- // 保存用户首选项数据
func MPSaveUserDefaultsInfo(info: Any, key: String) {
let userDefaults: UserDefaults = UserDefaults.standard
userDefaults.set(info, forKey: key)
}
2、
- // 读取用户首选项数据
func MPReadUserDefaultsInfo(key: String, result: (_ info: Any?) -> Void) {
let userDefaults: UserDefaults = UserDefaults.standard
result(userDefaults.object(forKey: key))
}