如何找到文档目录中的文件夹信息

时间:2012-04-03 07:36:20

标签: iphone directory

我正在开发一个应用程序。在其中我想找出文档目录中的文件夹数量,并在每个文件夹中找到XML文件。请告诉我如何在文档目录中找到文件夹的信息。

2 个答案:

答案 0 :(得分:1)

要获取目录列表使用以下代码,有1个属性isDirectory,它为您提供文件夹/文件的true / false。

NSFileManager *fileManager = [NSFileManager defaultManager];
fileList = [[fileManager directoryContentsAtPath:PATH_TO_SEARCH] retain];
NSMutableArray *arrDirectory = [[NSMutableArray alloc] init];
for(NSString *file in fileList) 
{
    NSString *path = [PATH_TO_SEARCH stringByAppendingPathComponent:file];
    BOOL isItDirectory = NO;
    [fileManager fileExistsAtPath:path isDirectory:(&isItDirectory)];
    if(isItDirectory)
        [arrDirectory addObject:file];
}

您的数组将包含此处的所有目录列表。您可以按照xml文件的相同模式。

希望这有帮助。

答案 1 :(得分:1)

如果我理解正确,您想在文档目录中的所有文件夹中找到所有xml文件吗?

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;

NSArray *contents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory
                                                                        error:nil];
for (NSString *path in contents) {
    BOOL isDir;
    if ([[NSFileManager defaultManager] fileExistsAtPath:path
                                             isDirectory:&isDir]
        && isDir) {
        // directory in documents directory
        NSArray *dirContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path
                                                                                   error:nil];
        for (NSString *dirContentsPath in dirContents) {
            if ([[dirContentsPath pathExtension] isEqualToString:@"xml"]) {
                NSLog(@"xml found: %@", dirContentsPath);
            }
        }
    }
}

您可能希望为更深层目录添加递归。