2012-04-03 6 views

Antwort

1

Wenn ich Sie richtig verstehe, möchten Sie alle XML-Dateien in allen Ordnern im Dokumentenverzeichnis finden?

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); 
      } 
     } 
    } 
} 

Sie können Rekursion für tiefere Verzeichnisse hinzufügen.

1

Um Liste der Verzeichnisse zu erhalten, verwenden Sie folgenden Code, gibt es 1 Attribut isDirectory, das Sie für Ordner/Datei wahr/falsch gibt.

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]; 
} 

Ihr Array enthält alle Verzeichnislisten hier. Sie können dasselbe Muster für XML-Dateien verwenden.

Hoffe, das hilft.

Verwandte Themen