2014-03-06 6 views
0

Я использую DropboxSDK (Core API). Я загрузить файл с помощью этой функции:Перезаписывающий файл с DropboxSDK

- (void)uploadFile { 

    [[self restClient] loadMetadata:@"/MyFolder"]; 
} 

- (void)restClient:(DBRestClient *)client loadedMetadata:(DBMetadata *)metadata { 

    if (metadata.isDirectory) { 
     if (metadata.contents.count == 0) { 
      NSString *filename = @"File.txt"; 
      NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
      NSString *documentsDir = [documentPaths objectAtIndex:0]; 
      NSString *databasePath = [documentsDir stringByAppendingPathComponent:filename]; 
      NSString *destDir = @"/MyFolder"; 
      [[self restClient] uploadFile:filename toPath:destDir withParentRev:nil fromPath:databasePath]; 
     } else { 
      for (DBMetadata *file in metadata.contents) { 
       [self overwriteFile:metadata]; 
      } 
     } 
    } 
} 

Я пытаюсь переписать файл «file.txt» с помощью этой функции, но она не работает.

- (void)overwriteFile:(DBMetadata*)meta { 

    NSString *filename = @"File.txt"; 
    NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDir = [documentPaths objectAtIndex:0]; 
    NSString *databasePath = [documentsDir stringByAppendingPathComponent:filename]; 
    [[self restClient] uploadFile:filename toPath:meta.path withParentRev:meta.rev fromPath:databasePath]; 
} 

Вызов этого делегата:

- (void)restClient:(DBRestClient *)client uploadedFile:(NSString *)destPath from:(NSString *)srcPath metadata:(DBMetadata *)metadata { 

    NSLog(@"File uploaded successfully to path: %@", metadata.path); 
} 

И я показываю Вход: Файл успешно загружен в пути: /myfolder/File.txt. Затем я перехожу к Dropbox, и я вижу, что дата моего файла не изменяется.

Что я делаю неправильно? Вы можете мне помочь?

+0

Что вы подразумеваете под «это не работает»? Вы получаете исключение, любое сообщение об ошибке из Dropbox SDK или что-то еще? – Romain

+0

@Romain Я обновил свой вопрос. – Sveta

+0

Пробовал ли вы печатать на консоли содержимое файла, который вы пытаетесь загрузить, просто чтобы убедиться, что он «новый», а не тот же файл, который вы загружаете снова? – Romain

ответ

0

Обратите внимание, что uploadFile добавления в файл с именем filename в путиtoPath. Мне кажется, что вы, вероятно, пытаетесь загрузить что-то вроде /MyFolder/File.txt/File.txt. Убедитесь, что toPath - это папка, в которую вы хотите записать файл File.txt.