быстрое сохранение файла после загрузки Alamofire

#swift #alamofire

#swift #alamofire

Вопрос:

загрузите и сохраните файл

 let destination: DownloadRequest.DownloadFileDestination = { _, _ in
   // var fileURL = self.createFolder(folderName: downloadFolderName)
    var fileURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]

    let fileName = URL(string : currentFile.link )
    fileURL = fileURL.appendingPathComponent((fileName?.lastPathComponent)!)
    return (fileURL, [.removePreviousFile, .createIntermediateDirectories])
}
Alamofire.download(currentDownloadedFile.link , to: destination).response(completionHandler: { (DefaultDownloadResponse) in
    print("res ",DefaultDownloadResponse.destinationURL!);
    completion(true)
})
  

но когда я обычно проверяю файл в этом каталоге, я получаю nil

 let filemanager:FileManager = FileManager()
let fileURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let files = filemanager.enumerator(atPath: fileURL.absoluteString) // = nil
while let file = files?.nextObject() {
    print(file)
}
  

если я сохраню локальный путь к файлу и после перезагрузки приложение не будет им делиться -> приложение «поделиться» не может отправить файл (mb не может его найти)

можете ли вы, пожалуйста, мне помочь. как это работает? почему, когда я печатаю все файлы, он этого не находит? как сохранить файл, который после перезагрузки приложения будет сохранен по той же ссылке

Ответ №1:

Вы используете неправильный API

Для URL-адресов файловой системы используйте всегда path , absoluteString возвращает полную строку, включая схему (например, file:// или http:// )

 let files = filemanager.enumerator(atPath: fileURL.path)