Verifier l'extention d'un fichier [Résolu]

Signaler
Messages postés
40
Date d'inscription
mercredi 10 mai 2006
Statut
Membre
Dernière intervention
5 juin 2008
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Bonjour,
j'ai écris une fonction en c++ qui traites un certain type de fichiers.
je voudrais donc vérifier l'extention du fichier (type) avant de le traiter. comment faire pour accéder à cette information des fichiers...??
Merci de votre aide

7 réponses

Messages postés
198
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
18 mars 2011
1
Tu peux obtenir l'extention comme ceci:


printf("%s", strchr("c:\\rep\\fic.ext", '.'));

ou

printf("%s", strchr("c:\\rep\\fic.ext", '.') + 1);
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
void GetFileExtension(char *szFullPath, char *szExt)
{
       char *c = szFullPath + strlen(szFullPath);
      char *d = szExt;
     
      while(*c != '.')c--;
      c++;
     
      while(*c) *d++ = *c++;
      *d = 0;
}

int main()
{
      char Buff[6];
      
      GetFileExtension("Salut.jpeg", Buff);
      printf("%s\n", Buff);       //Affiche : jpeg
      
    system("pause");
    return 0;
}

ULARGE_INTEGERJokyQi=QI("Joky"
Messages postés
40
Date d'inscription
mercredi 10 mai 2006
Statut
Membre
Dernière intervention
5 juin 2008
1
Merci
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
while(*c != '.')c--;
      c++;
Espérons que le nom du fichier contient au moins un '.' sinon on est mal barré

C'est mieux d'utiliser strrchr (et non strchr), et en testant le retour

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
364
Date d'inscription
mercredi 11 février 2004
Statut
Membre
Dernière intervention
5 octobre 2006
2
Hum, et avec un '.' quand même ça donne quoi :
GetFileExtension( "c:/rep.dat/file", ... ) ?


Comme quoi basename et dirname ne sont peut être pas aussi simple à coder que ça finalement.
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
Vous pouvez pas avoir des fichiers comme tout le monde !!!! lol

ULARGE_INTEGERJokyQi=QI("Joky"
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Ah oui j'avais pas pensé a ca....

_____________________________________
Un éditeur de ressources gratuit pour Windows