iPhone DropBox API:如何加载文件?
关于dropBox集成到iPhone应用程序的一个非常基本的问题 我遵循了DropBoxSDK的设置,一切正常。我可以登录到我的帐户并将其链接。所以我把一切都安排好了 现在我想用它从dropBox加载一个文件并再次保存。考虑只想同步一个文件(为了简单起见),称为“示例.txt”,它位于我的Dropbox中的“示例”文件夹中。相同的“example.txt”保存在iPhone上我的应用程序的Documents目录中 dropBox自述文件模糊地暗示了以下代码,我发现这些代码非常神秘,无法真正了解如何加载或保存文件:iPhone DropBox API:如何加载文件?,iphone,objective-c,cocoa-touch,dropbox,dropbox-api,Iphone,Objective C,Cocoa Touch,Dropbox,Dropbox Api,关于dropBox集成到iPhone应用程序的一个非常基本的问题 我遵循了DropBoxSDK的设置,一切正常。我可以登录到我的帐户并将其链接。所以我把一切都安排好了 现在我想用它从dropBox加载一个文件并再次保存。考虑只想同步一个文件(为了简单起见),称为“示例.txt”,它位于我的Dropbox中的“示例”文件夹中。相同的“example.txt”保存在iPhone上我的应用程序的Documents目录中 dropBox自述文件模糊地暗示了以下代码,我发现这些代码非常神秘,无法真正了解如
2. Make an request on the rest client:
[[self restClient] loadMetadata:@"/"];
3. Implement the DBRestClientDelegate methods needed to get the results of the
particular call you made:
- (void)restClient:(DBRestClient*)client
loadedMetadata:(DBMetadata*)metadata {
NSLog(@"Loaded metadata!");
}
- (void)restClient:(DBRestClient*)client
metadataUnchangedAtPath:(NSString*)path {
NSLog(@"Metadata unchanged!");
}
- (void)restClient:(DBRestClient*)client
loadMetadataFailedWithError:(NSError*)error {
NSLog(@"Error loading metadata: %@", error);
}
所以我(希望如此)简单的问题是我如何能够:
- 检查我的dropbox中是否有示例文件夹
- 如果没有,请创建一个并将app文档中的example.txt保存到此示例文件夹中
- 加载example.txt
- 一旦程序退出:将example.txt保存到DropBox
如果您能为我提供帮助或建议,我将不胜感激。好的,我找到了保存example.txt文件的方法:
-(void) DBupload:(id)sender
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Example.txt"];
[self.restClient uploadFile:@"NoteBook.txt" toPath:@"/example" fromPath:filePath];
}
事实证明,无需创建文件夹,dropbox将在不存在的情况下自动为您执行此操作
这用于下载相同的文件表单dropbox:
-(void) DBdownload:(id)sender
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents directory
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Example.txt"];
NSError *error;
[self.restClient loadFile:@"/example/Example.txt" intoPath:filePath];
if (filePath) { // check if file exists - if so load it:
NSString *tempTextOut = [NSString stringWithContentsOfFile:filePath
encoding:NSUTF8StringEncoding
error:&error];
}
}
如果您遇到类似的问题,希望这对您有所帮助。在DBdownload函数中,您可以通过实现DBRestClientDelegate方法loadedFile和loadeffiledwitheror跳过检查