NSDirectoryEnumerator
использует CFURLEnumerator
, поэтому вы увидите очень небольшую разницу в производительности.
CFURLEnumerator
предоставляет несколько опций перечислителя - kCFURLEnumeratorIncludeDirectoriesPreOrder
и kCFURLEnumeratorIncludeDirectoriesPostOrder
- которые не предоставляются API-интерфейсом Какао. Эти параметры полезны, если вам нужно контролировать, когда каталоги возвращаются во время рекурсивных перечислений. Например, если вы хотите использовать CFURLEnumerator
для перечисления и удаления содержимого иерархии каталогов, вам необходимо удалить каталоги после того, как вы удалите потомков каталогов. Опция kCFURLEnumeratorIncludeDirectoriesPostOrder
позволяет вам увидеть URL каталога после того, как вы увидели все его потомки.