быстрое сохранение файла после загрузки Alamofire - PullRequest
0 голосов
/ 27 марта 2019

скачать и сохранить файл

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)
})

, но когда я хочу проверить файл в этом каталоге, я получаю ноль

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)
}

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

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

1 Ответ

1 голос
/ 27 марта 2019

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

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

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