获取文档目录中的目录数组

Jac*_*ack 7 iphone nsfilemanager

我试图返回应用程序的Documents目录中的目录列表.我能够获得一个包含给定扩展名的所有文件的数组(例如.txt文件或.png文件),并且能够返回所有内容(包括目录).当我想只返回目录时出现问题.有一个简单的方法吗?

这是我返回所有.txt文件的代码:

- (ViewController *) init {
    if (self = [super init]) self.title = @"Text Files";

    // get the list of .txt files
    directoryList = [[[[NSFileManager defaultManager] directoryContentsAtPath:DOCUMENTS_FOLDER] 
                      pathsMatchingExtensions:[NSArray arrayWithObjects:@".txt", nil]] retain];
    NSLog(@"%@", directoryList);

    return self;
}
Run Code Online (Sandbox Code Playgroud)

并为所有文件

- (ViewController *) init {
    if (self = [super init]) self.title = @"Text Files";

    // get the list of all files and directories
    directoryList = [[[NSFileManager defaultManager] directoryContentsAtPath:DOCUMENTS_FOLDER] retain];

    NSLog(@"%@", directoryList);

    return self;
}
Run Code Online (Sandbox Code Playgroud)

mru*_*ueg 23

试试这个:

- (ViewController *) init {
    if (self = [super init]) self.title = @"Text Files";

    // get the list of all files and directories
    NSFileManager *fM = [NSFileManager defaultManager];
    fileList = [[fM directoryContentsAtPath:DOCUMENTS_FOLDER] retain];
    NSMutableArray *directoryList = [[NSMutableArray alloc] init];
    for(NSString *file in fileList) {
        NSString *path = [DOCUMENTS_FOLDER stringByAppendingPathComponent:file];
        BOOL isDir = NO;
        [fM fileExistsAtPath:path isDirectory:(&isDir)];
        if(isDir) {
            [directoryList addObject:file];
        }
    }

    NSLog(@"%@", directoryList);

    return self;
}
Run Code Online (Sandbox Code Playgroud)

  • directoryContentsOfPath:已弃用.必须是subpathsOfDirectoryAtPath:而不是 (2认同)