文件怎么存到沙盒里?
网上都这么写的:
- 先指定一个路径
- 然后如果是 image 就转 data,否则直接 write file
代码如下:
// file manager 在这
let fileManager: FileManager = FileManager.default
// 然后就哐一下子指定个 url 路径
let fileURL: URL = URL(fileURLWithPath: NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).first!).appendingPathComponent("SaveFolder/image.png", isDirectory: true)
// 路径指定完了,就存呗(假设我现在要存图片昂)
guard let imageData = image.pngData() else {
return nil
}
do {
print("Write image")
try imageData.write(to: fileURL)
} catch {
print("Error Writing Image: \(error)")
}
我这边会走 write image,不走 catch 的 error,但是莫名其妙啊,却在沙盒里找不到我存的文件!!!
这是咋回事啊???正确方式该咋存啊
俺们存东西之前,得保证路径存在,如果新的路径不存在,就有可能会保存失败!!
所以加上下面的代码
do {
// 所以俺们就把这个路径给造出来 然后再存它!
try fileManager.createDirectory(atPath: fileURL.absoluteString, withIntermediateDirectories: true, attributes: nil)
} catch {
print("create path error: \(error)")
}
完整版代码如下:
