2014-03-06 42 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上传到一个文件中路径toPath内命名filename。它看起来像你可能试图上传到/MyFolder/File.txt/File.txt。确保toPath是您要写入文件File.txt的文件夹。