代码之家  ›  专栏  ›  技术社区  ›  Jack

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

  •  6
  • Jack  · 技术社区  · 15 年前

    我试图返回应用程序文档目录中的目录列表。我能够得到一个包含给定扩展名的所有文件的数组(例如.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;
    }
    

    所有的文件

    - (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;
    }
    
    2 回复  |  直到 10 年前
        1
  •  22
  •   mrueg    15 年前

    试试这个:

    - (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;
    }
    
        2
  •  2
  •   Pawandeep Singh    10 年前

    尤格先生写的只有一件事

    fileList = [[fM directoryContentsAtPath:DOCUMENTS_FOLDER];
    

    替换为

    fileList = [fileManager contentsOfDirectoryAtPath:filePath error:nil];