2016-09-01 1 views
0

Hey les gens J'ai été coincé dans la situation où je voulais connaître le type de fichier de quelques fichiers qui n'a pas d'extension. Je sais jusqu'à maintenant que chaque fichier est associé à UTI Identifier et Extension.Comment obtenir un type de fichier si l'extension de fichier n'est pas disponible

1. Dans mon cas, l'extension de fichier n'est pas disponible donc pas de questions.

2. Le fichier n'a pas d'extension.

Apple documentation over file system over O.S

One of stack overflow reference

Article over dynamic UTI

Je suis ici aussi, mais suppose qu'il ya quelque chose que je suis absent ou aller dans le sens de l'anonymat.

Votre aide doit être appréciée.

+0

En général, s'il n'y a pas d'extension, vous devez deviner quel est le type de fichier. Linux utilise 'libmagic' pour examiner le contenu du fichier afin de déterminer le type de fichier. Il y a aussi une commande bsd 'magic' - si vous lancez' file --mime-type * ', vous essayez d'obtenir un type mime (par exemple image/png) pour tous les fichiers du répertoire courant. – Petesh

+0

@Petesh merci pour la réponse ... en ce moment je fais la même chose mais je pensais si j'avais l'opportunité de recevoir le type de fichier par n'importe quelle méthode prédéfinie. Je suis en mesure d'obtenir UTI de mon fichier dans "public.data" mais il s'agit d'un type d'image et il devrait donc me donner "public.image" afin que je puisse valider qu'il s'agit d'un fichier de type d'image. donc si vous avez une idée s'il est possible d'obtenir le type de fichier de fichier sans extension exactement. –

+0

Par défaut, l'UTI sera 'public.data' s'il n'y a pas d'extension.J'ai du mal à comprendre quel est le problème - vous ne pouvez pas invoquer une UTI pour un fichier sans un examen du fichier. Il n'y a vraiment aucun raccourci à cela si vous n'avez pas d'extension pour baser votre attente sur. – Petesh

Répondre

-1

vous pouvez essayer ceci:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:nil]; 
NSString *fileName = @"YOUR_FILE_NAME"; 
for (NSString *file in directoryContent) 
{ 
    NSString *fileNameWithOutExt= [file stringByDeletingPathExtension]; 
    if([fileName isEqualToString:fileNameWithOutExt]) 
    { 
     NSLog(@"Found"); 
    } 
} 
+0

Je veux le type de contenu de fichier pal .. Je ne cherche pas de fichier identique ... Vous pouvez voir les fichiers cache de safari ceux qui n'ont pas d'extension et je cherche juste les types de ces fichiers ... –

0

IVU sont conçus pour permettre le passage des données tapées entre les applications principalement par exemple l'envoi d'images sur le presse-papiers. Tant que les données sont étiquetées avec l'UTI appropriée, il sera disponible pour les consommateurs qui peuvent traiter ce type de données.

L'application qui place les données sur le carton est responsable de la détermination des UTI appropriées placed onto the pasteboard.

Lorsque vous déterminez l'UTI pour un fichier, le système d'exploitation obtient ce from the extension that is used. C'est la seule source que le système d'exploitation utilise pour déterminer l'UTI lorsqu'il regarde un fichier. S'il n'y a pas d'extension pour le fichier, il est donné l'UTI public.data. Au lieu de cela, Mac OS X dérive l'UTI à partir d'autres informations, principalement tragically et de l'extension de nom de fichier. L'UTI n'est stockée/mise en cache/conservée sous aucune forme sur le système de fichiers, sauf sous la forme de l'extension du fichier. Le seul mécanisme disponible autre que l'utilisation de l'extension de fichier consiste à utiliser un outil comme file ou sa bibliothèque libmagic, qui fait partie de la distribution du programme de fichiers pour interroger le fichier afin de déterminer son type de fichier probable.