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