Bundle.main
не будет возвращать файлы в document directory
, он используется для файлов, которые вы помещаете в основной пакет (обычно внутри Xcode во время разработки).Вам необходимо использовать FileManager
для доступа к файлам в document directory
.Вы можете использовать эту функцию для поиска файлов в каталоге документов.
func getFilePathInDocuments(fileName:String) -> String {
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let url = URL(fileURLWithPath: path)
let fileManager = FileManager.default
let filePath = url.appendingPathComponent(fileName).path
if (fileManager.fileExists(atPath: filePath)) {
return filePath
}else{
return ""
}
}
Вот как вы ее называете:
let foundPath = getFilePathInDocuments(fileName: "fileName.obj")
Обновление :
Вы можете указать fileName
для Almofire
, и с него вы также получите загруженный URL.
let destinationPath: DownloadRequest.DownloadFileDestination = { _, _ in
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0];
let fileURL = documentsURL.appendingPathComponent("fileName")
return (fileURL, [.removePreviousFile, .createIntermediateDirectories])
}
Alamofire.download(url, to: destinationPath)
.downloadProgress { progress in
}
.responseData { response in
}
Чтобы получить URL-адрес каталога загруженного документа, используйте response.destinationURL
.