ios xcode swift swift2 uti

ios - Cómo encontrar la UTI de archivo para archivo, sin extensión de ruta, en una ruta en Swift



xcode swift2 (1)

Puede usar el método URL resourceValues(forKeys:) para obtener el archivo URL TypeIdentifierKey que devuelve el identificador de tipo uniforme de archivo (UTI). Solo necesita verificar si el valor devuelto es "com.apple.m4v-video" para videos, "public.jpeg" o "public.png" para imágenes, etc. Puede agregar una extensión de propiedad typeIdentifier a la URL para devolver el valor de cadena TypeIdentifierKey de la siguiente manera:

Xcode 9 • Swift 4 o Xcode 8.3.2 • Swift 3.1

extension URL { var typeIdentifier: String? { return (try? resourceValues(forKeys: [.typeIdentifierKey]))?.typeIdentifier } var localizedName: String? { return (try? resourceValues(forKeys: [.localizedNameKey]))?.localizedName } }

He estado tratando de convertir este código que tenía de este example (en Objective-c) sin suerte.

String *path; // contains the file path // Get the UTI from the file''s extension: CFStringRef pathExtension = (__bridge_retained CFStringRef)[path pathExtension]; CFStringRef type = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension, NULL); CFRelease(pathExtension); // The UTI can be converted to a mime type: NSString *mimeType = (__bridge_transfer NSString *)UTTypeCopyPreferredTagWithClass(type, kUTTagClassMIMEType); if (type != NULL) CFRelease(type);

Mi código es este

import MobileCoreServices let path: String? let pathExt = path.pathExtension as CFStringRef let type = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension, NULL); let mimeType = UTTypeCopyPreferredTagWithClass(type, kUTTagClassMIMEType) if type != Null CFRelease(type)

Todo lo que quiero hacer es averiguar si un archivo es una imagen o un archivo de video