Question

Je suis en train de retourner la liste des répertoires présents dans une application de répertoire Documents. Je suis en mesure d'obtenir un tableau contenant tous les fichiers d'une extension donnée (par exemple les fichiers txt ou .png) et je suis en mesure de retourner tous les contenus (y compris les répertoires). Le problème se pose quand je veux revenir seulement les répertoires. Est-il un moyen simple de le faire?

Voici mon code pour le retour de tous les fichiers 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;
}

et pour tous les fichiers

- (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;
}
Était-ce utile?

La solution

Essayez ceci:

- (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;
}

Autres conseils

Mrueg a écrit tout cela, mais une chose que

fileList = [[fM directoryContentsAtPath:DOCUMENTS_FOLDER];

Remplacer par

fileList = [fileManager contentsOfDirectoryAtPath:filePath error:nil];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top