ドキュメントからかなりまっすぐ:
NSDirectoryEnumerator *dirEnum = [localFileManager enumeratorAtPath:docsDir];
NSString *file;
while (file = [dirEnum nextObject]) {
if ([[file pathExtension] isEqualToString: @"jpg"]) {
// process the document
[self doSomethingWithFile: [docsDir stringByAppendingPathComponent:file]];
}
}
NSDirectoryEnumerator も高速列挙をサポートしているように見えるので、代わりにそれを使用できます。
NSDirectoryEnumerator *dirEnum = [localFileManager enumeratorAtPath:docsDir];
for (NSString *file in dirEnum) {
if ([[file pathExtension] isEqualToString: @"doc"]) {
// process the document
[self doSomethingWithFile: [docsDir stringByAppendingPathComponent:file]];
}
}
ディレクトリ列挙子を使用することと、によって返されるリストを反復処理することの違いは-contentsOfDirectoryAtPath:
、ディレクトリ列挙子がサブディレクトリからの結果も提供することです。