Renvoyer le nom d'un fichier a partir d'un chemin

Soyez le premier à donner votre avis sur cette source.

Snippet vu 2 801 fois - Téléchargée 39 fois

Contenu du snippet

Voila comment obtenir le nom d'un fichier avec son chemin complet.
Exemple : "C:\WINDOWS\Bureau\Chanson.mp3" renverra "Chanson".
Cela peux servir par exemple pour un lecteur mp3 ou autres...

Bon jé modifié la source par rapport a vos commentaires, en effet j'ai kand même été chershé bien loin lol, une fonction pour ... enfin bon ! Je réduit donc le code.

Source / Exemple :


'Fonction pour meilleure utilisation :

Public Function NomFichier(Chemin As String)
NomFichier = Right(Chemin, InStr(StrReverse(Chemin), "\") - 1)
NomFichier = Left(NomFichier, Len(NomFichier) - InStr(StrReverse(NomFichier), "."))
End Function

'Utilisation :

Private Sub Command1_Click()
MsgBox NomFichier("C:\TonShemin\...\TonFichier.aaa")
'Donc renvoi 'TonFichier'
End Sub

'----------------------------------------------

'Sinon :

Private Sub Command1_Click()
Dim Chemin, Fichier As String
Chemin = "C:\TonShemin\...\TonFichier.aaa"
Fichier = Right(Chemin, InStr(StrReverse(Chemin), "\") - 1)
Fichier = Left(Fichier, Len(Fichier) - InStr(StrReverse(Fichier), "."))
Text1.Text = Fichier
End Sub

Conclusion :


Komme dit dans les commentaires, bug si dans le nom du fichier il y a un antislash ...
C:\WINDOWS\Bureau\Matt - 12\0013.mp3 < renverra 0013, logique mé un peu dommage ... :)

Voila !
J'espère que ca servira a pas mal d'entre nous, et que ca rapportera pas mal.
Tout les commentaires seront bienvenus ;)

[ ICIoBRa ]

A voir également

Ajouter un commentaire

Commentaires

cs_Dany3
Messages postés
13
Date d'inscription
mercredi 26 juin 2002
Statut
Membre
Dernière intervention
26 juin 2003
-
DragonDo
Messages postés
93
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
22 juillet 2006
-
Désolé, mais les backslash ne sont pas passés :
lire : faire rechercher tous les "backslash"
puis : MonFic = "C:TonCheminbackslashTonFichier.Ext"
@+
DragonDo
Messages postés
93
Date d'inscription
lundi 8 avril 2002
Statut
Membre
Dernière intervention
22 juillet 2006
-
Ton code est sympa mais il ne fonctionne pas dans certains cas. Par exemple lorsque tu met un point dans le nom de ton fichier (ce qu'autorise les versions de win32). De plus, plutôt que de faire rechercher tous les "" en commençant par le début de la chaîne à analyser, tu aurais dû commencer par la fin en faisant une boucle du style :
For Ind=len(Chemin) to 1 step-1
if mid$(chemin,ind,1)="" then
Nomfichier=mid$(chemin,ind+1)
exit for
Next ind
Contrairement à notre ami Lamouche2002 (qui ne donne pas de réponse constructive), je vais te donner une autre solution connue et faisant appel aux APIs (désolé, mais ça fais plus d'une ligne !) :
Ce projet necessite une feuille et un bouton de commande.
Dans la zone de déclaration de ta feuille :

Option Explicit
Private Declare Function GetFileTitle Lib "comdlg32.dll" Alias "GetFileTitleA" (ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer) As Integer

Private Sub Command1_Click()

'----- Déclaration des variables
Dim MonFic As String
Dim TMsg As String

'----- Initialisation des variables
MonFic = "C:TonCheminTonFichier.Ext"
TMsg = String(255, 0)

'----- Appel de la fonction et affichage du nom du fichier
GetFileTitle MonFic, TMsg, Len(TMsg)
TMsg = Left$(TMsg, InStr(1, TMsg, Chr$(0)) - 1)
MsgBox "Nom du fichier : " & Left$(TMsg, Len(TMsg) - 4) & " Extension : " & Right$(TMsg, 3)

End Sub

@+ Bonne prog
cs_BFR
Messages postés
88
Date d'inscription
mardi 30 juillet 2002
Statut
Membre
Dernière intervention
1 mars 2008
-
méme problème il bouffe les slash
il existe des dizaines de façons différentes d'arriver à un résultat en programmation il suffit souvent de chercher

une autre façon..
Public Function NOM_FICHIER(Chemin As String, Optional AvecExt As Boolean) As String
'-Extraction d'un chemin du nom du fichier seul avec ou sans extension
'-Déclaration
Dim TmpNomFichier As String

'-Extraction
'-Nom du fichier avec extension
TmpNomFichier = Right(Chemin, Len(Chemin) - InStrRev(Chemin, "", -1, 1))

'-Nom du fichier sans extension
If AvecExt Then TmpNomFichier = Left$(TmpNomFichier, Len(TmpNomFichier) - 4)
'-Renvoi dans la fonction
NOM_FICHIER = TmpNomFichier

End Function

renopé
cs_BFR
Messages postés
88
Date d'inscription
mardi 30 juillet 2002
Statut
Membre
Dernière intervention
1 mars 2008
-
il existe des dizaines de façons différentes d'arriver à un résultat en programmation il suffit souvent de chercher

une autre façon..
Public Function NOM_FICHIER(Chemin As String, Optional AvecExt As Boolean) As String
'-Extraction d'un chemin du nom du fichier seul avec ou sans extension
'-Déclaration
Dim TmpNomFichier As String

'-Extraction
'-Nom du fichier avec extension
TmpNomFichier = Right(Chemin, Len(Chemin) - InStrRev(Chemin, "", -1, 1))

'-Nom du fichier sans extension
If AvecExt Then TmpNomFichier = Left$(TmpNomFichier, Len(TmpNomFichier) - 4)
'-Renvoi dans la fonction
NOM_FICHIER = TmpNomFichier

End Function

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.