我通过 Dropbox 支持向我的应用程序添加了“移动到文件夹”功能。我试图在整个用户保管箱中获取所有文件夹和子文件夹。这是我现在拥有的代码,如果已记录,则顺序正确但向后
-(void)restClient:(DBRestClient *)client loadedMetadata:(DBMetadata *)metadata {
if (allFolders == nil) {
allFolders = [[NSMutableArray alloc] init];
[allFolders addObject:@"/"];
}
for (DBMetadata *fileMetadata in metadata.contents) {
if ([fileMetadata isDirectory]) {
NSArray *filePathComponents = [fileMetadata.path pathComponents];
NSString *inFolder = [filePathComponents objectAtIndex:[filePathComponents count]-2];
NSLog(@"file is in folder %@",inFolder);
[allFolders insertObject:fileMetadata.filename atIndex:[allFolders indexOfObject:inFolder]];
if ([metadata.contents count] > 0) [[self restClient] loadMetadata:fileMetadata.path];
}
}
}
这个问题是我hViewFoldersViewController
还必须显示应用程序文档目录的所有文件夹,并且我使用一个NSObject
名为 Folder Item 的自定义项,它存储表的所有项目路径、名称和缩进级别。如果我使用这种方法,我无法获得路径,因为所有 lFolders 都在 Dropbox 助手类中,我可以将其移动到 .viewcontroller
但令我困惑的是获得objectAtIndex
. 如果我让它只添加对象,它将显示所有第一级文件夹,然后是第二级,然后是第三级。我想要它,所以如果在 Dropbox 中有一个名为“test 1”的文件夹,然后 test 1 包含“test 2”,那么它会显示 test 1,然后缩进更多 test 2 文件夹,然后是其他第一个目录文件夹。如果我在数组中使用我的 FolderItem 我找不到objectAtIndex
. 我怎样才能获得我需要插入的文件夹的索引呢?