如何使用Objective-C从Dropbox中删除文件或文件夹

时间:2015-01-10 13:54:41

标签: ios objective-c iphone dropbox dropbox-api

我尝试使用目标c从保管箱中删除文件或文件夹,并使用目标c在保管箱中执行替换文件。 我正在访问此链接https://www.dropbox.com/developers/core/docs,但我无法得到任何解决方案。我也用谷歌,但我找不到删除文件夹,文件或替换文件的代码。 你能解决一下吗?所以我可以走得更远。

这个代码我试过但我无法得到解决方案。 你能检查一下吗?

-(void)DeleteFile
{
    DBRestClient *dbClient = [[DBRestClient alloc] initWithSession:[DBSession sharedSession]];
    [dbClient deletePath:DBdata.path];//DBdata object is DBMetadata for geting path from dropbox
}

-(void)uploadFileToDropBox:(NSString *)filePath
{
    NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentPath = [searchPaths objectAtIndex:0];
    NSString *path = [documentPath stringByAppendingPathComponent:@"/MortgageCalculator.sqlite"];


   [self.restClient uploadFile:@"MortgageCalculator.sqlite" toPath:filePath withParentRev:nil fromPath:path];
}

请给Demo删除文件,文件夹和替换文件

谢谢

解决方案 嘿, 我得到了解决方案。 请放置此委托方法

- (void)restClient:(DBRestClient*)client deletedPath:(NSString *)path
{

}
- (void)restClient:(DBRestClient*)client deletePathFailedWithError:(NSError*)error
{

}

并将此代码放入删除方法

DBMetadata *metadata = [marrDownloadData objectAtIndex:indexforyourfile];
 [self.restClient deletePath:metadata.path]; 

2 个答案:

答案 0 :(得分:0)

这实际上是一个很糟糕的问题,应该被低估,因为你没有提供你已经尝试过的任何事例。

但总的来说,对于许多Restful服务器API(包括DropBox)you first need to authenticate (i.e. get a token to prove that it's really you)

使用该令牌,您就可以调用"fileops/delete" API,从而可以删除文件或文件夹。

还有SDK that might encapsulate (or abstract)足够的这个,所以删除和替换比试图找出JSON&更容易。 API' S

答案 1 :(得分:0)

You can do it using following code:
-(void)deletefile:(DBPath *)filePath
{
    NSError *err=nil;
    BOOL success;


    success=[[DBFilesystem sharedFilesystem] deletePath:filePath error:&err];
    if(success)
    {
        NSLog(@"deleted");

    }
    else
    {
        NSLog(@"deletion error %@",err);
    }

}
You need to use sync API:Check this API documentation for more detail:

https://www.dropbox.com/developers/sync/docs/ios#DBFilesystem.deletePath:error