gpt4 book ai didi

objective-c - Dropbox 的所有文件夹及其内部文件夹的列表

转载 作者:行者123 更新时间:2023-12-03 16:37:53 24 4
gpt4 key购买 nike

我正在通过 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称为文件夹项目,它存储表的所有项目路径、名称和缩进级别。如果我使用此方法,我无法获取路径,因为 dropbox 帮助程序类中的所有 lFolders 都可以将其移动到 viewcontroller但让我困惑的是得到 objectAtIndex 。如果我让它只添加对象,它将显示所有第一级文件夹,然后是第二级,然后是第三级。我想要它,如果在保管箱中有一个名为“test 1”的文件夹,然后 test 1 包含“test 2”,那么它会显示 test 1,然后更多缩进 test 2 文件夹,然后是其他第一个目录文件夹。如果我在数组中使用我的FolderItem,我找不到 objectAtIndex 。我怎样才能获得我需要插入的文件夹的索引?

最佳答案

您遇到的问题是您正在构建一个简单的文件名列表。您需要构建一个树结构。一种方法是创建字典数组。数组中的每个元素都是一个字典。该字典包含文件名及其子目录的数组。

当调用 restClient:loadedMetadata: 方法时,您需要查看元数据来确定父目录。使用它可以在树结构中找到正确的位置,以便您可以在树中的正确节点处填充子目录数组。

关于objective-c - Dropbox 的所有文件夹及其内部文件夹的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13318711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com