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

allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 31 juil. 2006 à 12:06 - Dernière réponse : cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention
- 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 

8 réponses

Répondre au sujet
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 31 juil. 2006 à 12:17
+3
Utile
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 />

@+  
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_drahcir
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 31 juil. 2006 à 14:00
+3
Utile
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 />
@+  
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_drahcir
Molenn 797 Messages postés mardi 7 juin 2005Date d'inscription 23 février 2011 Dernière intervention - 31 juil. 2006 à 12:21
0
Utile
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
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 31 juil. 2006 à 13:44
0
Utile
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
Molenn 797 Messages postés mardi 7 juin 2005Date d'inscription 23 février 2011 Dernière intervention - 31 juil. 2006 à 14:24
0
Utile
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
allthew3 552 Messages postés samedi 8 janvier 2005Date d'inscription 12 avril 2008 Dernière intervention - 31 juil. 2006 à 14:26
0
Utile
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
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 31 juil. 2006 à 14:32
0
Utile
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
cs_drahcir 745 Messages postés mardi 30 novembre 2004Date d'inscription 15 septembre 2009 Dernière intervention - 31 juil. 2006 à 14:37
0
Utile
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.