Копирование файла из временного URL в каталог документов всегда выдает. NSURLSessionDownloadTask
Я загружаю файл, используя NSURLSessionDownloadTask, который работает отлично. Как я получаю мое изображение или видео файл во временный каталог. Но мне нужно переместить его на постоянный URL, чтобы поместить его в библиотеку фотографий. я использую NSFileManager
"s copyItemAtURL:
без успеха. Любую причину это бросило бы? Возможно, тип файла не совместим с каталогом документов?
let directory : String = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didFinishDownloadingToURL location: NSURL) {
if let fileName = self.file.zOrigFileName {
let destinationPath = self.directory.stringByAppendingString("/\(fileName)")
if let destinationURL = NSURL(string: destinationPath) {
let fileManager = NSFileManager.defaultManager()
//IF file with same name exists delete it before copying new file
if fileAlreadyExistsAtURL(destinationURL) {
do {
try fileManager.removeItemAtURL(destinationURL)
} catch {
print("Error Removing Item At \(destinationURL.path)")
}
}
do {
try fileManager.copyItemAtURL(location, toURL: destinationURL)
self.saveURLToPhotosLibrary(destinationURL)
} catch {
//This is line always printing. my try statement always throwing.
print("Error Copying Item from \(location.path) to \(destinationURL.path)")
}
}
}
}
Вот заявление для печати. В целях безопасности я заменяю идентификатор пакета приложения из каталога документов на $(AppId)
Ошибка копирования элемента из необязательного ("/private/var/mobile/Containers/Data/Application/E8D9C365-15D2-40BD-B0B5-A000BEDA9F00/ Библиотека /Caches/com.apple.nsurlsessiond/Downloads/$(AppID)/CFNetworkDownload_CK3G3Z.tmp") по желанию ("/var/mobile/Containers/Data/Application/E8D9C365-15D2-40BD-B0B5-A000BEDA9F00/Documents/shortMovie.mov")
1 ответ
Вы используете неправильный инициализатор NSURL. При работе с путями нужно использовать инициализатор fileURLWithPath.