2016-08-31 14 views
2

Я использую ObjectiveDropbox для управления некоторыми задачами с помощью учетной записи Dropbox пользователя, а именно перечисления файлов и загрузки некоторых из них ,Ошибка загрузки: CFNetworkDownload_ <some id> .tmp не может быть перемещен в "", потому что элемент с тем же именем уже существует

Листинг файлов и папок из моего аккаунта довольно вперед с прямыми, но когда я хочу, чтобы загрузить файл, я получаю эту ошибку: download error: CFNetworkDownload_<some id>.tmp couldn't be moved to <unique ID> because an item with the same name already exists.

Любая идея, почему?

код, который делает загрузку:

 DropboxDownloadArg *downloadArg = [[DropboxDownloadArg alloc] initWithPath:metadata.pathLower]; 
NSURL *destURL = [NSURL fileURLWithPath:[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]]; 
     [self.dropboxClient.files download:downloadArg 
         destFileUrl:destURL 
          progress:^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) { 

          } success:^(DropboxFileMetadata * _Nonnull metadata) { 
           [self.downloadDelegate downloadHasCompletedSuccessfully]; 
          } fail:^(DropboxError * _Nonnull error) { 
           NSLog(@"download error: %@", error.errorSummary); 
           [self.downloadDelegate downloadFailed]; 
          }]; 

Я проверил, что downloadArg и destURL правильно созданы и действуют.

Спасибо

+0

... и это происходит, даже если сбросить папку приложения симулятор/устройства? – eddyce

+0

Да. Я удалил приложение с устройства и попробовал еще раз. – invalidArgument

+0

Вы используете https://github.com/AFNetworking/AFNetworking в своем приложении? – eddyce

ответ

3

Я только что воспроизвел вашу проблему. Похоже, проблема в вашем пункте назначенияURL. Когда вы объединяете разные пути и конвертируете их из NSURL в NSString и обратно, вы можете получить путь следующим образом: file: /// file:/... Проверьте пример проекта. Он использует временный каталог, и он работает хорошо.

Вот рабочий код с директории Документы:

NSURL *dir = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; 

NSURL *filePath = [dir URLByAppendingPathComponent:@"file.f"]; 

[self.dropbox.files download:downloadArg destFileUrl:filePath progress:^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) {