Как получить файл UTI, когда файл не имеет расширения?

Есть ли способ определить файл UTI (идентификатор однородного типа), даже если нет расширения файла?

Прямо сейчас я получаю его так, когда файл имеет расширение:

CFStringRef fileUTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, (CFStringRef)[file pathExtension], NULL); 

Я нашел этот фрагмент в сети, который предназначен для этого на Mac. Но я в iOS:

 CFStringRef typeString = UTCreateStringForOSType(outInfo.filetype); itemUTI = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, typeString, NULL); CFRelease( typeString ); 

Примечание: outInfo имеет тип LSItemInfoRecord, которого нет в iOS.

Единственный способ идентифицировать файл, который не имеет расширения и других метаданных, – это посмотреть на его содержимое и определить файл на основе этого.

Если это файл изображения, он обычно начинается с некоторой магической строки, которая идентифицирует ее как JPEG, PNG и т. Д. Вы также можете просто открыть его как изображение и посмотреть, работает ли он.

Однако для текстового файла такой подход не будет работать, поскольку текстовые файлы могут содержать любой контент. Если у вас есть представление о том, какой текст находится в файле, вы можете просто открыть его в виде строки, а затем выполнить поиск строки для этого текста. Если нет, вы можете просто искать слова из словаря, а затем предположить, что это текст, если он содержит разумное количество словарных слов.

Возможно, вам будет лучше попросить пользователя определить тип файла, если нет расширения, но это проще и надежнее.

  • Найдите имя (целевое) действие (селектор) UIGestureRecognizer
  • удаление клавиатуры с экрана без вызова resignFirstResponder
  • рисовать круговую диаграмму с использованием кварца iOS 2D
  • Как можно скрыть правовую ссылку на moomapview monotouch iPhone
  • Менеджер CLLocation не обновляется, когда приложение находится в режиме управляемого доступа
  • Управление ориентацией устройства в iOS 6 во время загрузки изображения?
  • Как я могу погасить AVAudioPlayer в фоновом потоке?
  • Проблемы памяти MKMapView в ios7 sdk
  • Как скрыть заголовок UITableView, а затем снова открыть его?
  • Редактирование границ UIView при представлении скрывает клавиатуру в iOS 8
  • Переопределить UINavigationController UINavigationTransitionView clipToBounds
  • Interesting Posts

    UI Tests – isSelected всегда возвращает false

    iPhone MKMapView: обнаружение ближайших местоположений в массиве из текущего местоположения

    Как получить широту и долготу местоположения касания на mapView с использованием API карт Google в iOS

    Обмен частными данными с помощью CloudKit

    В чем разница между протоколом, расширением и категорией в разработке IOS? И как их использовать надлежащим образом?

    Как отобразить PDF-документ, содержащий гиперссылки? (на iOS)

    BRAOfficeDocumentPackage необъявленный тип

    Как подключиться к приложениям в магазине приложений

    UIViewController с ошибкой UITableView и UISearchBar

    Как добавить кнопку «Отключить звук» в SpriteKit / Objective C?

    GoogleMobileAds (SWIFT) – команда не удалась из-за сигнала: Ошибка сегментации: 11

    Недопустимая двоичная ошибка

    В iOS, каков тип возврата buf с помощью 'sysctlbyname ("net.inet.tcp.pcblist", buf, & len, 0, 0)'?

    iPhone – создание изображения на экране

    Скрытие вывода NSLog, поступающего из прекомпилированной библиотеки

    Давайте будем гением компьютера.