Monday, April 22, 2013

NSFileManager enumeratorAtPath example ios


enumeratorAtPath:

Returns a directory enumerator object that can be used to perform a deep enumeration of the directory at the specified path.
- (NSDirectoryEnumerator *)enumeratorAtPath:(NSString *)path
Parameters
path
The path of the directory to enumerate.
Return Value of [NSFileManager enumeratorAtPath]
An NSDirectoryEnumerator object that enumerates the contents of the directory at path.
If path is a filename, the method returns an enumerator object that enumerates no files—the first call to nextObject will return nil.
Discussion of [NSFileManager enumeratorAtPath]
Because the enumeration is deep—that is, it lists the contents of all subdirectories—this enumerator object is useful for performing actions that involve large file-system subtrees. This method does not resolve symbolic links encountered in the traversal process, nor does it recurse through them if they point to a directory.
This code fragment enumerates the subdirectories and files under a user’sDocuments directory and processes all files with an extension of .doc:
Example of [NSFileManager enumeratorAtPath]
NSString *docsDir = [NSHomeDirectory() stringByAppendingPathComponent:  @"Documents"];
NSFileManager *localFileManager=[[NSFileManager alloc] init];
NSDirectoryEnumerator *dirEnum =
    [localFileManager enumeratorAtPath:docsDir];
NSString *file;
while ((file = [dirEnum nextObject])) {
    if ([[file pathExtension] isEqualToString: @"doc"]) {
        // process the document
        [self scanDocument: [docsDir stringByAppendingPathComponent:file]];
    }
}
[localFileManager release];
The NSDirectoryEnumerator class has methods for obtaining the attributes of the existing path and of the parent directory and for skipping descendants of the existing path.