[英]Swift 3 : Fail to write file to Document Directory
我想下載一個文件並寫入文檔目錄,但是當我在simulator
上運行時,它返回如下錯誤:
錯誤域= NSCocoaErrorDomain代碼= 4“文件夾“ logo.jpg”不存在。”
我寫這樣的代碼,我錯了嗎? 謝謝。
var absPath = "./image/logo.png"
var sourceUrl = "http://www.example.com/data/"
var documentUrl = fileManager.urls(for: .documentDirectory, in: .userDomainMask)[0] as URL
let strIdx = absPath.index(absPath.startIndex, offsetBy: 2)
if (absPath.hasPrefix("./"))
{
absPath = absPath.substring(from: strIdx)
}
let sourceUrl = URL(string: self.sourceUrl.appending(absPath))
let fileData = try NSData(contentsOf: sourceUrl!, options: NSData.ReadingOptions())
let destPath = documentUrl.appendingPathComponent(absPath)
do {
try fileData.write(toFile: destPath.path, options: .atomicWrite)
} catch {
print(error)
}
absPath
包含一個子目錄。 如果要將文件直接保存到“ Documents
,則必須去除image
子目錄。
let destPath = documentUrl.appendingPathComponent(sourceUrl!.lastPathComponent)
否則,您必須在Documents
創建image
目錄。
注意:在Swift 3中,請勿使用NSData
,強烈建議使用與網址相關的API
do {
let fileData = try Data(contentsOf: sourceUrl!)
try fileData.write(to: sourceUrl!, options: .atomic)
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.