Я пытаюсь возвратить список каталогов, существующих в каталоге 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;
}
и для всех файлов
- (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;
}
Попробуйте:
- (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;
}