如何获取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];
- 该应用程序引用Payload / .app / 中的非公共选择器:FailWithError :, topMostAlert
- NSDateFormatter提前4小时给我时间
- 如何获得键盘大小调整UITextView和如何使用UIKeyboardFrameEndUserInfoKey与日本键盘?
- swift全局常量:不能使用另一个常量进行初始化
- ios是将数据从一个视图控制器传递到另一个视图控制器的最佳方式。 通过单例类或* .h文件?
- UItesting用例不显示代码覆盖率
- 从电话号码确定国际呼叫代码的算法
- 我执行后如何恢复:git reset –hard HEAD
- 如何在Swift中使用CoreAudio API