Récupérer l'extension d'un fichier [Résolu]

Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Dernière intervention
12 avril 2008
- - Dernière réponse : cs_drahcir
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Dernière intervention
15 septembre 2009
- 31 juil. 2006 à 14:37
Bonjour à tous,

j'aimerais récupérer l'extansion d'un fichier dans une chaine contenant pour l'exemple :
C:\Windows\notepad.exe

(récupérer donc dans cet exemple "exe" ou ".exe")

Mais je n'y arrive pas, avez-vous une idée ? comment faire ?

Merci d'avance à tous ..
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Dernière intervention
15 septembre 2009
3
Merci
Salut,




Dim fichier As String = "C:\Windows\notepad.exe"
Dim extension As String
Dim indexPoint As Integer = fichier.LastIndexOf(".")

extension = fichier.Substring(index) + 1





<hr />

@+  

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_drahcir
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Dernière intervention
15 septembre 2009
3
Merci
Tout à fait Renfield, j'ai juste mis le code pour récupérer l'extension. Mais c'est vrai que mon code va planter s'il n'y a aucun point dans la chaîne.

A rajouter donc :

If indexPoint <> -1 Then
   extension = fichier.Substring(index) + 1
Else
   MsgBox("blabla....")
End If

<hr />
@+  

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_drahcir
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
0
Merci
2 solutions :
- On sait que l'extension est toujours du type ".xxx" soit 3 caractères.
On fait donc juste un Right(Chemin, 3) est hop, tu as ton extension.

- On n'en est pas sur justement de cette taille d'extension (il m'arrive de créer des extensions d'une taille supérieure quand je me fais des p'tits programmes donc, pourquoi pas) : C'est la même idée.
On cherche la position du dernier point dans le chemin avec la fonction InStrRev(Chemin, ".") qui donne la position du dernier caractère "point" de ton chemin.
Tu vas donc récupérer les caractères après ce point : la longueur à récupérer est len(chemin)-le chiffre remonté par InStrRev.
Et tu fais right(Chemin, chiffre).

Molenn
Commenter la réponse de Molenn
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
Molenn, on est en .Net. Oublie donc InstrRev & Co.
De plus, ta première affirmation est fausse :
<strike>    On sait que l'extension est toujours du type ".xxx" soit 3 caractères.
    On fait donc juste un Right(Chemin, 3) est hop, tu as ton extension.</strike>

drahcir, il faut tester le fait qu'un point ait bien été trouvé, et mieux placer le '+1'...

    fichier.Substring(index) + 1

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Dernière intervention
23 février 2011
0
Merci
Heu Renfield, mon affirmation n'est pas fausse puisqu'on n'a pas assez de renseignements. Le sens que je donne à ce que j'ai écrit.
2 solutions :
- Hypothèse 1 : On sait que l'extension est toujours du type ".xxx" soit 3 caractères
=> Ca peut être le cas si allthew3 n'a besoin que de récupérer des extensions définies : par ex, il sait qu'il ne peut avoir que des fichiers .xls ou .doc dans un répertoire, pas besoin de chercher plus loin.
Fonction de ses besoins, on peut tout à fait partir là-dessus.
- Hypothèse 2 : blabla

Mais effectivement, je n'avais pas vu qu'on était dans la section vb.net et 2005 : les instructions que donnent drahcir ne fonctionnent pas en vba, ni en vb6 il me semble... Pour ça que je suis encore avec mon InStrRev et que je suis à côté de la plaque ^^

Molenn
Commenter la réponse de Molenn
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Dernière intervention
12 avril 2008
0
Merci
lol ok
oui j'avais pas pensé au point ... et oui dans mon programme y'a forcément un point pour l'extansion ...

merci à tous ...
Commenter la réponse de allthew3
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
drahcir, je te l'ai dit ca va pas le faire, ce +1

    extension = fichier.Substring(index) + 1

il ne doit pas être mis ici, mais bien comme suit :

    extension = fichier.Substring(index + 1)

^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
745
Date d'inscription
mardi 30 novembre 2004
Dernière intervention
15 septembre 2009
0
Merci
Arrf, j'avais pas vu ta 2ème remarque.... et comme j'ai pas testé, je suis passé à côté de cette boulette

<hr />
@+  
Commenter la réponse de cs_drahcir

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.