iOS递归文件夹并将文件结构保存到Dictionary& Array中

时间:2015-12-04 06:56:16

标签: ios objective-c recursion

我正在播放我的播放器应用中的“文件夹功能”,但我对文件递归感到困惑。我想递归文件文件然后保存文件夹和文件使用字典和数组。 这是我的代码:

- (void)fileRecursive:(NSString *)path{
BOOL isDir;
[_fm fileExistsAtPath:path isDirectory:&isDir];

if (isDir) {
    //Folder
    NSString *folderName = [path lastPathComponent];
    [self.folderArray addObject:folderName];

    NSLog(@"Folder  %@",folderName);
    NSArray *files = [_fm contentsOfDirectoryAtPath:path error:nil];
    for (NSString *file in files) {
        [self fileRecursive:[path stringByAppendingPathComponent:file]];
    }
}else{
    //File
    NSString *fileName = path;
    [self.fileArray addObject:fileName];

    NSLog(@"File %@",fileName);
    }  
}

递归之后,我想得到一个像这样的字典: enter image description here

dic{ 
"Folder1":[file1,file2];
"Folder2":[file3,file4];
"RootFolder":[file0]; 
}

我需要添加哪些代码?感谢。

1 个答案:

答案 0 :(得分:-1)

我最近几天解决了这个问题,使用递归是很奇怪的。所以只需遍历目录,然后记录文件和文件夹,如果打开文件夹,则再次执行此操作。