Obtenez tableau de répertoires dans le répertoire des documents
-
24-09-2019 - |
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;
}
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