-1

我的应用程序显示保管箱文件和文档目录。查看保管箱文件时,我可以按下一个按钮,显示我所有的文档文件夹列表,以及这些文件夹中的子目录,以便他们可以选择他们想要将该文件放入文档的文件夹。这样做时,我使用了 dropbox 的 Objective c API,他们说在文档中使用它来将文件下载到系统上的路径中。

NSString *DocumentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

for (NSIndexPath *indexPath in [dropboxFilesTable indexPathsForSelectedRows]) {

    DBMetadata *fileMetadata = [[dropboxFolderMetadata contents] objectAtIndex:indexPath.row];

    [[self restClient] loadFile:fileMetadata.path intoPath:DocumentsPath];
}

保管箱的代表说它已成功放入,但是当我返回时,每个文件夹和下载的文件都已被删除,并且该文件仍未在文件夹中。我认为它需要像“文档路径”/“文件名”这样的最终路径,但随后 dropbox 给出了一个错误。任何人都知道为什么它会删除我的所有文件而不是将其放入我的文档中?

4

1 回答 1

1

intoPath参数需要是完整的文件名路径,而不是目录。您需要将最后一行更新为:

NSString *filename = [fileMetadata.path lastPathComponent];
NSString *destPath = [DocumentsPath stringByAppendingPathComponent:filename];
[[self restClient] loadFile:fileMetadata.path intoPath:destPath];

还要确保您只对文件而不是文件夹执行此操作。

于 2012-11-10T23:10:42.823 回答