Ссылка CFURLEnumerator
CFURLEnumerator обеспечивает функции для перечисления каталогов и томов файловой системы. Каждый перечислимый элемент возвращается как a CFURLRef объект.
Создать каталог CFURLEnumerator объект, используйте CFURLEnumeratorCreateForDirectoryURL функция. Создать объем CFURLEnumerator объект, используйте CFURLEnumeratorCreateForMountedVolumes функция. Можно настроить поведение перечислителя путем предоставления возможностей к этим функциям. Эти опции описаны в “Enumerator Options”.
Другие процессы могут изменить файловую систему при перечислении каталога или томов файловой системы. Если Ваше приложение должно знать об изменениях файловой системы, происходящих во время перечисления, необходимо зарегистрировать для уведомлений изменения файловой системы в Событиях Файловой системы API перед началом перечисления. Если часть файловой системы, которую Вы перечисляете, изменяется, можно хотеть перезапустить перечисление. См. Руководство по программированию Событий Файловой системы для получения дополнительной информации.
-
Создает и возвращает перечислитель каталога с предоставленными возможностями поведения перечислителя и свойствами, которые будут выбраны с упреждением.
Объявление
Swift
func CFURLEnumeratorCreateForDirectoryURL(_alloc: CFAllocator!, _directoryURL: CFURL!, _options: CFURLEnumeratorOptions, _propertyKeys: CFArray!) -> CFURLEnumerator!Objective C
CFURLEnumeratorRef CFURLEnumeratorCreateForDirectoryURL ( CFAllocatorRef alloc, CFURLRef directoryURL, CFURLEnumeratorOptions option, CFArrayRef propertyKeys );Параметры
allocСредство выделения памяти для использования. Если
NULL, средство выделения по умолчанию используется.directoryURLURL каталога для перечисления.
optionsНемного массива опций поведения перечислителя.
propertyKeysМассив ключей свойства файла для упреждающей выборки для каждого перечислил URL. Может быть
NULL.Возвращаемое значение
Создаваемый перечислитель каталога.
Обсуждение
Перечислители каталога не убывают в подкаталоги
directoryURLпо умолчанию. Для создания рекурсивного перечислителя включайтеkCFURLEnumeratorDescendRecursivelyопция вoptions.Указание свойств упреждающей выборки позволяет перечислителю оптимизировать доступ к устройствам при помощи объемных операций. Однако Вы не должны выбирать с упреждением свойства, которые не необходимы, потому что выполнение так может ухудшить производительность.
Создаваемый перечислитель каталога генерирует URLs с тем же типом как
directoryURL. ЕслиdirectoryURLссылка на файл URL, затем перечислил URLs, ссылка на файл URLs. ЕслиdirectoryURLпуть к файлу URL, затем перечислил URLs, путь к файлу URLs.В некоторых областях иерархии файловой системы ссылка на файл не может быть сгенерирован URLs. Перечислитель всегда генерирует путь к файлу URLs для этих областей.
Эта функция игнорирует
kCFURLEnumeratorGenerateFileReferenceURLsопция.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.6 и позже.
См. также
-
Создает и возвращает перечислитель объема с предоставленными возможностями поведения перечислителя и свойствами, которые будут выбраны с упреждением.
Объявление
Swift
func CFURLEnumeratorCreateForMountedVolumes(_alloc: CFAllocator!, _options: CFURLEnumeratorOptions, _propertyKeys: CFArray!) -> CFURLEnumerator!Objective C
CFURLEnumeratorRef CFURLEnumeratorCreateForMountedVolumes ( CFAllocatorRef alloc, CFURLEnumeratorOptions option, CFArrayRef propertyKeys );Параметры
allocСредство выделения памяти для использования. Если
NULL, средство выделения по умолчанию используется.optionsНемного массива опций поведения перечислителя.
propertyKeysМассив ключей свойства файла для упреждающей выборки для каждого перечислил URL. Может быть
NULL.Возвращаемое значение
Создаваемый перечислитель объема.
Обсуждение
Перечислители объема генерируют путь к файлу URLs по умолчанию. Для генерации ссылки на файл URLs вместо этого, включайте
kCFURLEnumeratorGenerateFileReferenceURLsопция вoptions.Указание свойств упреждающей выборки позволяет перечислителю оптимизировать доступ к устройствам при помощи объемных операций. Однако Вы не должны выбирать с упреждением свойства, которые не необходимы, потому что выполнение так может ухудшить производительность.
Эта функция игнорирует
kCFURLEnumeratorDescendRecursivelyиkCFURLEnumeratorSkipPackageContentsопции.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.6 и позже.
См. также
-
Совершенствует перечислитель к следующему URL.
Объявление
Swift
func CFURLEnumeratorGetNextURL(_enumerator: CFURLEnumerator!, _url: UnsafeMutablePointer<Unmanaged<CFURL>?>, _error: UnsafeMutablePointer<Unmanaged<CFError>?>) -> CFURLEnumeratorResultObjective C
CFURLEnumeratorResult CFURLEnumeratorGetNextURL ( CFURLEnumeratorRef enumerator, CFURLRef *url, CFErrorRef *error );Параметры
enumeratorПеречислитель.
urlЕсли эта функция возвращается, содержит следующий URL
kCFURLEnumeratorSuccess.errorЕсли эта функция возвращается, содержит информацию об ошибке
kCFURLEnumeratorError. Информация об ошибке сохраняется и должна быть выпущена. Может бытьNULL.Возвращаемое значение
Результат усовершенствования перечислителя.
Обсуждение
Если возвращается эта функция
kCFURLEnumeratorEnd, перечисление закончилось.Возвращаемое значение
kCFURLEnumeratorErrorне подразумевает, что закончилось перечисление.Если возвращается эта функция
kCFURLEnumeratorError, пользовательский информационный словарьerrorзаполняется со следующими записями (когда возможный):kCFErrorUnderlyingErrorKeyесли базовая ошибка не находится в, запись заполняется с базовой ошибкойkCFErrorDomainCocoaдомен.NSURLErrorKeyзапись заполняется с URL, вызвавшим ошибку, как aCFURLRefобъект.NSFilePathErrorKeyзапись заполняется с путем к файлу, вызвавшим ошибку, как aCFStringRefобъект.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.6 и позже.
См. также
-
Возвращает число уровней убывал, рекурсивный перечислитель каталога.
Объявление
Swift
func CFURLEnumeratorGetDescendentLevel(_enumerator: CFURLEnumerator!) -> CFIndexObjective C
CFIndex CFURLEnumeratorGetDescendentLevel ( CFURLEnumeratorRef enumerator );Параметры
enumeratorПеречислитель каталога.
Возвращаемое значение
Текущий происходящий уровень перечислителя.
Обсуждение
Дочерние элементы начального каталога на уровне 1. Каждый раз, когда рекурсивный перечислитель убывает в подкаталог, он добавляет 1 к происходящему уровню. Это вычитает 1 из его уровня, когда это заканчивает подкаталог и продолжает перечислять родительский каталог.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.6 и позже.
-
Говорит рекурсивному перечислителю не убывать в каталог в URL, возвращенном новым вызовом к
CFURLEnumeratorGetNextURLфункция.Объявление
Swift
func CFURLEnumeratorSkipDescendents(_enumerator: CFURLEnumerator!)Objective C
void CFURLEnumeratorSkipDescendents ( CFURLEnumeratorRef enumerator );Параметры
enumeratorПеречислитель.
Обсуждение
Вызов к этой функции проигнорирован в следующих случаях:
CFURLEnumeratorGetNextURLфункция никогда не вызывалась с этим перечислителем.Последний URL, возвращенный
CFURLEnumeratorGetNextURLфункция не является каталогом.Перечислитель не является перечислителем каталога, создававшимся с
kCFURLEnumeratorDescendRecursivelyопция.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.6 и позже.
-
Возвращает непрозрачный идентификатор типа для непрозрачного типа CFURLEnumerator.
Объявление
Swift
func CFURLEnumeratorGetTypeID() -> CFTypeIDObjective C
CFTypeID CFURLEnumeratorGetTypeID ( void );Возвращаемое значение
CFURLEnumeratorнепрозрачный идентификатор типа.Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.6 и позже.
-
Эта функция не реализована, таким образом, она не выполняет работы. Используйте События Файловой системы API для обнаружения изменений в файловой системе. См. Руководство по программированию Событий Файловой системы для получения дополнительной информации.
Объявление
Objective C
Boolean CFURLEnumeratorGetSourceDidChange ( CFURLEnumeratorRef enumerator );Параметры
enumeratorПеречислитель.
Возвращаемое значение
Возвраты
false.Оператор импорта
Objective C
@import CoreFoundation;Доступность
Доступный в OS X v10.6 и позже.
Осуждаемый в OS X v10.7.
-
Ссылка на a
CFURLEnumeratorобъект.Объявление
Swift
typealias CFURLEnumeratorRef = CFURLEnumeratorObjective C
typedef const struct __CFURLEnumerator *CFURLEnumeratorRef;Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.6 и позже.
-
Опции для управления поведением перечислителя.
Объявление
Swift
struct CFURLEnumeratorOptions : RawOptionSetType { init(_rawValue: CFOptionFlags) init(rawValuerawValue: CFOptionFlags) static var DefaultBehavior: CFURLEnumeratorOptions { get } static var DescendRecursively: CFURLEnumeratorOptions { get } static var SkipInvisibles: CFURLEnumeratorOptions { get } static var GenerateFileReferenceURLs: CFURLEnumeratorOptions { get } static var SkipPackageContents: CFURLEnumeratorOptions { get } static var IncludeDirectoriesPreOrder: CFURLEnumeratorOptions { get } static var IncludeDirectoriesPostOrder: CFURLEnumeratorOptions { get } }Objective C
enum { kCFURLEnumeratorDefaultBehavior = 0, kCFURLEnumeratorDescendRecursively = 1UL << 0, kCFURLEnumeratorSkipInvisibles = 1UL << 1, kCFURLEnumeratorGenerateFileReferenceURLs = 1UL << 2, kCFURLEnumeratorSkipPackageContents = 1UL << 3, kCFURLEnumeratorIncludeDirectoriesPreOrder = 1UL << 4, kCFURLEnumeratorIncludeDirectoriesPostOrder = 1UL << 5 }; typedef CFOptionFlags CFURLEnumeratorOptions;Константы
-
DefaultBehaviorkCFURLEnumeratorDefaultBehaviorПеречислитель выполняет свое поведение по умолчанию.
Доступный в OS X v10.7 и позже.
-
DescendRecursivelykCFURLEnumeratorDescendRecursivelyПеречислитель рекурсивно вызывает в каждый перечисленный подкаталог.
Эта опция применяется только к перечислителям каталога.
Можно перечислить каталоги, с которыми рекурсивный перечислитель встречается способом перед порядком, видом постпорядка или обоими, путем обеспечения комбинации
kCFURLEnumeratorIncludeDirectoriesPreOrderиkCFURLEnumeratorIncludeDirectoriesPostOrderопции. Если Вы не предоставляете никакую возможность, рекурсивный перечислитель ведет себя, как будто это было предоставленоkCFURLEnumeratorIncludeDirectoriesPreOrderопция.Доступный в OS X v10.6 и позже.
-
SkipInvisibleskCFURLEnumeratorSkipInvisiblesПеречислитель пропускает «скрытые» или «невидимые» объекты.
Доступный в OS X v10.6 и позже.
-
GenerateFileReferenceURLskCFURLEnumeratorGenerateFileReferenceURLsПеречислитель генерирует ссылку на файл URLs вместо пути к файлу URLs.
Эта опция применяется только к перечислителям объема.
Доступный в OS X v10.6 и позже.
-
SkipPackageContentskCFURLEnumeratorSkipPackageContentsПеречислитель пропускает содержание каталога пакета.
Эта опция применяется только к перечислителям каталога.
Доступный в OS X v10.6 и позже.
-
IncludeDirectoriesPreOrderkCFURLEnumeratorIncludeDirectoriesPreOrderЕсли предоставленный вместе с
kCFURLEnumeratorDescendRecursivelyопция, рекурсивный перечислитель возвращает URL каталога прежде, чем возвратить URLs потомков каталога.Доступный в OS X v10.7 и позже.
-
IncludeDirectoriesPostOrderkCFURLEnumeratorIncludeDirectoriesPostOrderЕсли предоставленный вместе с
kCFURLEnumeratorDescendRecursivelyопция, рекурсивный перечислитель возвращает URL каталога после возврата URLs потомков каталога.Рекурсивный перечислитель постпорядка возвращается
kCFURLEnumeratorDirectoryPostOrderSuccessкогда это возвращает URL каталога после возврата потомков каталога.Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.6 и позже.
-
-
Результат кодирует от
CFURLEnumeratorGetNextURLфункция.Объявление
Swift
enum CFURLEnumeratorResult : CFIndex { case Success case End case Error case DirectoryPostOrderSuccess }Objective C
enum { kCFURLEnumeratorSuccess = 1, kCFURLEnumeratorEnd = 2, kCFURLEnumeratorError = 3, kCFURLEnumeratorDirectoryPostOrderSuccess = 4 }; typedef CFIndex CFURLEnumeratorResult;Константы
-
SuccesskCFURLEnumeratorSuccessПеречислитель был усовершенствован успешно и возвратил допустимый URL.
Доступный в OS X v10.6 и позже.
-
EndkCFURLEnumeratorEndПеречисление завершено.
Доступный в OS X v10.6 и позже.
-
ErrorkCFURLEnumeratorErrorОшибка произошла во время перечисления.
errorпараметр функции заполняется с информацией об ошибке.Доступный в OS X v10.6 и позже.
-
DirectoryPostOrderSuccesskCFURLEnumeratorDirectoryPostOrderSuccessРекурсивный перечислитель постпорядка возвратил URL для каталога, возвратив URLs для всех потомков каталога.
Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import CoreFoundation;Swift
import CoreFoundationДоступность
Доступный в OS X v10.6 и позже.
-
