如何以编程方式恢复Dropbox中的文件

时间:2012-04-04 06:35:48

标签: iphone ios5 versioning restore dropbox-api

我是IOS中Dropbox开发的新手,我还在学习如何在我的应用程序中实现dropbox,应用程序是一个文本编辑器,我想支持上传和下载文件在dropbox中。在我的应用程序中,我只是可以对文本进行一些更改,然后将其上传到dropbox,但我无法将其恢复到最后一个版本。我已阅读Dropbox Rest API并阅读https://api.dropbox.com/1/restore/<root>/<path>

但我不知道该怎么做,有人可以帮助我吗?

谢谢

1 个答案:

答案 0 :(得分:1)

试试这个

/ *在给定转速下存在的路径中恢复文件,并返回已恢复的元数据    恢复后的文件* /

- (void)restoreFile:(NSString *)path toRev:(NSString *)rev;

其中path是必须恢复的DropBox文件的路径,rev是必须恢复的版本

及其委托方法是

- (void)restClient:(DBRestClient*)client restoredFile:(DBMetadata *)fileMetadata;
- (void)restClient:(DBRestClient*)client restoreFileFailedWithError:(NSError *)error;

您可以使用它们来获取特定文件的修订列表

/ *加载一个最多10个DBMetadata对象的列表,表示路径上文件的过去修订版* /

- (void)loadRevisionsForFile:(NSString *)path;

/ *与上面相同,但对返回的DBMetadata对象数量有可配置的限制,最多1000 * /

- (void)loadRevisionsForFile:(NSString *)path limit:(NSInteger)limit;

及其代表方法

- (void)restClient:(DBRestClient*)client loadedRevisions:(NSArray *)revisions forFile:(NSString *)path;
- (void)restClient:(DBRestClient*)client loadRevisionsFailedWithError:(NSError *)error;

示例

    NSString *filePath = @"/Contacts";
    NSString *revisionStr = @"a1067dc176";   // sample revisionString

    [[self restClient] loadRevisionsForFile:filePath limit:10];

    [[self restClient] restoreFile:filePath toRev:revisionStr];

//委托方法

- (void)restClient:(DBRestClient*)client loadedRevisions:(NSArray *)revisions forFile:(NSString *)path{

    for (DBMetadata *file in revisions) 
    {
        NSLog(@"MetaData's Revisions \t%@", file.rev);
    }
}
- (void)restClient:(DBRestClient*)client loadRevisionsFailedWithError:(NSError *)error{

}

- (void)restClient:(DBRestClient*)client restoredFile:(DBMetadata *)fileMetadata{
    NSLog(@"Restored FileMetaData Path : %@",fileMetadata.path);
        NSLog(@"Restored FileMetaData rev : %@",fileMetadata.rev);
}
- (void)restClient:(DBRestClient*)client restoreFileFailedWithError:(NSError *)error{
     NSLog(@"There was an error restoring the file - %@", error);
}