如何获取NSDocumentDirectory中的直接列表?

我在NSDocumentDirectory中创建了一些目录

if (![tbxCreateFolder.text isEqualToString:@""]) { NSArray *arrPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectoryStr = [arrPaths objectAtIndex:0]; // Get documents folder NSString *dataPath = [documentsDirectoryStr stringByAppendingPathComponent:[NSString stringWithFormat:@"/%@",tbxCreateFolder.text]]; if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath]){ NSError* error; if([[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]){ NSLog(@"success"); //Perfrom DB Insertation } else { NSLog(@"[%@] ERROR: attempting to write create MyFolder directory", [self class]); NSAssert( FALSE, @"Failed to create directory maybe out of disk space?"); } } 

}

现在我想获取我在文档文件夹中创建的目录列表,但响应是

 NSArray *arrPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *basePathString = ([arrPaths count] > 0) ? [arrPaths objectAtIndex:0] : nil; NSLog(@"dirContents %@",basePathString); 

回应是:

 /Users/amir/Library/Application Support/iPhone Simulator/6.1/Applications/7003E8D5-CCBB-4E54-896B-F4BD2F4D2CB1/Documents 

这是代码:

 NSString *documentDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; // create directory named "test" [[NSFileManager defaultManager] createDirectoryAtPath:[documentDirPath stringByAppendingPathComponent:@"test"] withIntermediateDirectories:YES attributes:nil error:nil]; // retrieved all directories NSLog(@"%@", [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentDirPath error:nil]); NSArray *paths = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentDirPath error:nil]; BOOL isDir = NO; for (NSString *path in paths) { if ([fileManager fileExistsAtPath:path isDirectory:&isDir] && isDir) { // path is directory } } 

您始终可以使用-fileExistsAtPath:isDirectory:枚举顶级目录的内容-fileExistsAtPath:isDirectory:如下所示:

 NSFileManager *sharedFileManager = [NSFileManager defaultManager]; NSDirectoryEnumerator *files = [sharedFileManager enumeratorAtPath:yourPath]; for (NSString *path in files) { BOOL isDirectory = NO; [sharedFileManager fileExistsAtPath:path isDirectory:&isDirectory]; if (isDirectory) { // you found a directory, so do what you will with it } } 

您可以使用几行简单的代码来完成此操作

 NSString *documentDirectoryPath = // Initialize with Documents path BOOL isDir = NO; NSFileManager *fileManager = [NSFileManager defaultManager]; NSArray *files = [fileManager contentsOfDirectoryAtPath:documentDirectoryPath error:NULL]; NSMutableArray *directoriesPaths = [NSMutableArray array]; for (NSString *filePath in files) { if ([fileManager fileExistsAtPath:filePath isDirectory:&isDir] && isDir) { [directoriesPaths addObject:filePath]; } } NSLog(@"directories %@", directoriesPaths); 

尝试这个,

  NSArray *arrPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *strFilePath = [[arrPath objectAtIndex:0] [[NSFileManager defaultManager] createDirectoryAtPath:[strFilePath stringByAppendingPathComponent:@"Sample"] withIntermediateDirectories:YES attributes:nil error:nil];