ios - 如何使用名称检索保存的图像?
问题描述
我目前正在使用FileManager
这样的方式保存图像:
guard let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return }
let fileName = imageName
let fileURL = documentsDirectory.appendingPathComponent(fileName)
guard let data = image.jpegData(compressionQuality: 0.8) else { return }
do {
try data.write(to: fileURL)
} catch let error {
print("error saving file with error", error)
}
如何使用文件名沿以下类似行检索此文件?
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let url = NSURL(fileURLWithPath: path)
if let pathComponent = url.appendingPathComponent("fileName") {
let filePath = pathComponent.path
let fileManager = FileManager.default
// ??
} else {
print("file not available")
}
解决方案
使用与save
代码中相同的 URL 相关 API
let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let fileName = "fileName.jpg"
let fileURL = documentsDirectory.appendingPathComponent(fileName)
if let image = UIImage(contentsOfFile: fileURL.path) {
// do something with the image
} else {
print("error loading file")
}
推荐阅读
- android - Android MediaPlayer 在 API 21 上失败(但不是 API 19 或 22!)
- python - 如果我安装了 2 个 python 版本,如何在命令提示符下更改 python 版本
- javascript - 复选框类型的动态创建输入未通过 NgModel 正确绑定值
- r - lapply 使用迭代器作为函数的参数
- javascript - 源映射到原始 SCSS 文件
- angular - 从 Angular 5.2 升级到 6.1
- javascript - 如何动态修改使用 JavaScript 在 Django for 循环中标记?
- java - 没有为 slf4j 创建文件和记录器
- c++ - 比较 char* (C/C++) 的最快方法?
- corda - 无法加载 CordaService