【发布时间】:2019-06-10 19:44:39
【问题描述】:
我有以下 swift 函数,我希望将传入的字节保存到 iOS 上的 JPEG 文件中。不幸的是,调用 data.write 引发了异常,我收到了错误消息
文件夹“studioframe0.jpg”不存在。写入文件:/var/mobile/Containers/Data/Application/2A504F84-E8B7-42F8-B8C3-3D0A53C1E11A/Documents/studioframe0.jpg -- file:///
为什么 iOS 认为它是指向不存在的目录的目录路径,而不是我要求它写入的文件?
func saveToFile(data: Data){
if savedImageCount < 10 {
guard let documentDirectoryPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else {
return
}
let imgPath = URL(fileURLWithPath: documentDirectoryPath.appendingPathComponent("studioframe\(savedImageCount).jpg").absoluteString)
savedImageCount += 1
do {
try data.write(to: imgPath, options: .atomic)
print("Saved \(imgPath) to disk")
} catch let error {
print("\(error.localizedDescription) writing to \(imgPath)")
}
}
}
【问题讨论】:
-
这应该重新打开,uiimage 问题是另外一回事。这里的问题是尚未创建中间目录。这可以通过文件管理器创建,然后它将不再将一个人的文件与文件夹混淆。接受的答案是一个很好的解决方法,但没有解决缺少目录的核心问题。