2011-05-25 12 views
5

¿Hay alguna manera de averiguar el archivo UTI (identificador de tipo uniforme) aunque no haya una extensión de archivo?¿Cómo obtener un archivo UTI cuando el archivo no tiene extensión?

Ahora mismo obtenerlo como este, cuando el archivo tiene una extensión:

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

He encontrado este fragmento en la red que pretende hacerlo en el Mac. Pero estoy en IOS:

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

Nota: outInfo es de tipo LSItemInfoRecord que no existe en IOS.

+0

¿Se refiere a un archivo que no tiene extensión de nombre de archivo pero que tiene un código de tipo de archivo HFS +? Por ejemplo, un archivo de texto sin formato que tiene el nombre de archivo de "Documento" y un tipo de archivo de "TEXTO". ¿O un archivo que no tiene ningún tipo de archivo ni extensión de nombre de archivo? – NSGod

+0

Un archivo que el usuario creó (por ejemplo, un archivo de texto) y luego eliminó la extensión ".txt" para que parezca "myDocument" en lugar de "myDocument.txt" – dontWatchMyProfile

Respuesta

1

La única manera de identificar un archivo que no tiene extensión y ningún otro metadato es mirar su contenido e identificar el archivo en función de eso.

Si se trata de un archivo de imagen, generalmente comienza con una cadena mágica que lo identifica como JPEG, PNG, etc. También podría tratar de abrirlo como imagen y ver si funciona.

Sin embargo, para un archivo de texto, ese enfoque no funcionará ya que los archivos de texto pueden contener cualquier contenido. Si tiene alguna idea sobre qué texto hay en el archivo, simplemente puede abrirlo como una cadena y luego buscar la cadena para ese texto. De lo contrario, podría buscar palabras de un diccionario y luego asumir que es texto si contiene una cantidad razonable de palabras del diccionario.

Es mejor que le pidas al usuario que identifique el tipo de archivo si no hay una extensión, es más fácil y más confiable.

Cuestiones relacionadas