我正在开发一个应用程序。在其中我想找出文档目录中的文件夹数量,并在每个文件夹中找到XML文件。请告诉我如何在文档目录中找到文件夹的信息。
答案 0 :(得分:1)
要获取目录列表使用以下代码,有1个属性isDirectory,它为您提供文件夹/文件的true / false。
NSFileManager *fileManager = [NSFileManager defaultManager];
fileList = [[fileManager directoryContentsAtPath:PATH_TO_SEARCH] retain];
NSMutableArray *arrDirectory = [[NSMutableArray alloc] init];
for(NSString *file in fileList)
{
NSString *path = [PATH_TO_SEARCH stringByAppendingPathComponent:file];
BOOL isItDirectory = NO;
[fileManager fileExistsAtPath:path isDirectory:(&isItDirectory)];
if(isItDirectory)
[arrDirectory addObject:file];
}
您的数组将包含此处的所有目录列表。您可以按照xml文件的相同模式。
希望这有帮助。
答案 1 :(得分:1)
如果我理解正确,您想在文档目录中的所有文件夹中找到所有xml文件吗?
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
NSArray *contents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory
error:nil];
for (NSString *path in contents) {
BOOL isDir;
if ([[NSFileManager defaultManager] fileExistsAtPath:path
isDirectory:&isDir]
&& isDir) {
// directory in documents directory
NSArray *dirContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path
error:nil];
for (NSString *dirContentsPath in dirContents) {
if ([[dirContentsPath pathExtension] isEqualToString:@"xml"]) {
NSLog(@"xml found: %@", dirContentsPath);
}
}
}
}
您可能希望为更深层目录添加递归。