Как resourceValues URL (forKeys: [.typeIdentifierKey]) определяет UTI?
У меня есть URL
и я звоню resourceValues(forKeys: [.typeIdentifierKey])
на нем, чтобы узнать ИМП, которым он соответствует. Работает отлично.
Этот метод просто проверяет, является ли это каталогом (как с stat(2)
, чтобы сообщить "public.folder"), и если это не каталог, расширение имени файла (и если нет, то просто "public.data", "public.item")?
Кажется, это так, но я не могу найти документацию, в которой точно сказано, как она определяет тип.
Обоснование: у меня есть куча URL-адресов, чьи UTI я хочу проверить по известному значению, и я знаю, что они не являются папками, поэтому я мог бы сэкономить кучу вызовов ввода-вывода, если бы был уверен, что это все, что это метод делает.
ОБНОВЛЕНИЕ: я посмотрел в swift-corelibs-foundation/URL.swift, но он просто проходит через метод NSURL с тем же именем. Метод swift-corelibs-foundation/NSURL.swift просто выбрасывает NSUnimplemented(). Я попытался посмотреть в CFLite, в котором есть реализация CFURL, но я не могу найти там ничего, связанного с UTI. AFAICT, нет открытой реализации этого метода от Apple.