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’s
Documents
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.