Ссылка 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
, средство выделения по умолчанию используется.directoryURL
URL каталога для перечисления.
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() -> CFTypeID
Objective 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 = CFURLEnumerator
Objective 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;
Константы
-
DefaultBehavior
kCFURLEnumeratorDefaultBehavior
Перечислитель выполняет свое поведение по умолчанию.
Доступный в OS X v10.7 и позже.
-
DescendRecursively
kCFURLEnumeratorDescendRecursively
Перечислитель рекурсивно вызывает в каждый перечисленный подкаталог.
Эта опция применяется только к перечислителям каталога.
Можно перечислить каталоги, с которыми рекурсивный перечислитель встречается способом перед порядком, видом постпорядка или обоими, путем обеспечения комбинации
kCFURLEnumeratorIncludeDirectoriesPreOrder
иkCFURLEnumeratorIncludeDirectoriesPostOrder
опции. Если Вы не предоставляете никакую возможность, рекурсивный перечислитель ведет себя, как будто это было предоставленоkCFURLEnumeratorIncludeDirectoriesPreOrder
опция.Доступный в OS X v10.6 и позже.
-
SkipInvisibles
kCFURLEnumeratorSkipInvisibles
Перечислитель пропускает «скрытые» или «невидимые» объекты.
Доступный в OS X v10.6 и позже.
-
GenerateFileReferenceURLs
kCFURLEnumeratorGenerateFileReferenceURLs
Перечислитель генерирует ссылку на файл URLs вместо пути к файлу URLs.
Эта опция применяется только к перечислителям объема.
Доступный в OS X v10.6 и позже.
-
SkipPackageContents
kCFURLEnumeratorSkipPackageContents
Перечислитель пропускает содержание каталога пакета.
Эта опция применяется только к перечислителям каталога.
Доступный в OS X v10.6 и позже.
-
IncludeDirectoriesPreOrder
kCFURLEnumeratorIncludeDirectoriesPreOrder
Если предоставленный вместе с
kCFURLEnumeratorDescendRecursively
опция, рекурсивный перечислитель возвращает URL каталога прежде, чем возвратить URLs потомков каталога.Доступный в OS X v10.7 и позже.
-
IncludeDirectoriesPostOrder
kCFURLEnumeratorIncludeDirectoriesPostOrder
Если предоставленный вместе с
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;
Константы
-
Success
kCFURLEnumeratorSuccess
Перечислитель был усовершенствован успешно и возвратил допустимый URL.
Доступный в OS X v10.6 и позже.
-
End
kCFURLEnumeratorEnd
Перечисление завершено.
Доступный в OS X v10.6 и позже.
-
Error
kCFURLEnumeratorError
Ошибка произошла во время перечисления.
error
параметр функции заполняется с информацией об ошибке.Доступный в OS X v10.6 и позже.
-
DirectoryPostOrderSuccess
kCFURLEnumeratorDirectoryPostOrderSuccess
Рекурсивный перечислитель постпорядка возвратил URL для каталога, возвратив URLs для всех потомков каталога.
Доступный в OS X v10.7 и позже.
Оператор импорта
Objective C
@import CoreFoundation;
Swift
import CoreFoundation
Доступность
Доступный в OS X v10.6 и позже.
-