Extraire le dernier dossier d'un chemin [Résolu]

emmanuelgo
Messages postés
62
Date d'inscription
vendredi 24 décembre 2004
Dernière intervention
13 avril 2005
- 29 mars 2005 à 17:24 - Dernière réponse : retaks666
Messages postés
289
Date d'inscription
jeudi 2 janvier 2003
Dernière intervention
16 juillet 2007
- 29 mars 2005 à 19:09
Salut à tous...

je souhaiterai créer une fonction simple permettant d'extraire le dernier dossier d'un chemin (juste avant le nom du fichier).
par exemple :
en entrant le chemin :
D:\Dossier\SousDossier\SousSSDossier\LeDernierDossier\MonFichier.fic
la fonction renvoi :
LeDernierDossier\
j'ai bricoler un truc avec ExtractFilePath, puis avec une recherche du dernier slash etc etc....mais c'est vraiment du bricolage et ça ne me satisfaisait pas...
Y'a t il une solution simple ?
je n'ai rien trouvé dans "utilitaires de nom de fichiers" dans l'aide delphi...

merci de votre aide.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
WhiteHippo
Messages postés
1270
Date d'inscription
samedi 14 août 2004
Dernière intervention
5 avril 2012
- 29 mars 2005 à 18:15
3
Merci
Je ferais comme suit :

function DernierDossier ( const NomFichier : string ) : string ;
var
Chemin : String ;
begin
Chemin := ExtractFileDir( NomFichier );
Result := ExtractRelativePath(Chemin,Chemin);
end ;

Cordialement.

Merci WhiteHippo 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de WhiteHippo
emmanuelgo
Messages postés
62
Date d'inscription
vendredi 24 décembre 2004
Dernière intervention
13 avril 2005
- 29 mars 2005 à 18:30
0
Merci
merci pour ta réponse rapide.... je trouve ça etonnant mais : ça marche !
j'avais tenté un truc avec ExtractRelativePath, mais sans succés... cette façon d'utiliser est assez etonnante puisque voila ce que dit l'aide delphi

function ExtractRelativePath(const BaseName, DestName: string): string;





Description





Appelez ExtractRelativePath pour convertir un chemin complet en chemin relatif. Le paramètre DestName spécifie le chemin et le nom de fichier à convertir. BaseName est le nom complet du répertoire de base auquel le chemin renvoyé fait référence. BaseName peut ou non contenir un nom de fichier mais doit contenir le délimiteur de chemin d'accès final.

je ne comprends pas vraiment pourquoi ta fonction renvoi le dernier dossier....
mais ça marche !!!
merci beaucoup ! ça m'aide énormément !
Commenter la réponse de emmanuelgo
retaks666
Messages postés
289
Date d'inscription
jeudi 2 janvier 2003
Dernière intervention
16 juillet 2007
- 29 mars 2005 à 18:50
0
Merci
Tu peux le faire que en bricolant, tiens je t'ai fait une fonction
bricolage, c'est un peu lourd car j'utilise aucune variables mais ça
marche ;)



function getlpath(rpath:string):string;

begin

if (rpath[length(rpath)] <> '\') then rpath := rpath + '\';

result:=copy(rpath,

(rpos('\',copy(rpath,1,length(rpath)-1),-1)+1),

(length(application.exename)-(rpos('\',copy(rpath,1,length(rpath)-1),-1))));

result := copy(result,1,length(result)-1);//pour enlever le slash a la fin

end;
Commenter la réponse de retaks666
emmanuelgo
Messages postés
62
Date d'inscription
vendredi 24 décembre 2004
Dernière intervention
13 avril 2005
- 29 mars 2005 à 18:54
0
Merci
merci à toi retaks666....
c'est un peu lourd effectivement !!! mais en gros ça ressemble à ce que j'avais bricoler moi même.... regarde la solution de WhiteHippo : beaucoup plus simple n'est ce pas ??
merci quand meme !!
Commenter la réponse de emmanuelgo
retaks666
Messages postés
289
Date d'inscription
jeudi 2 janvier 2003
Dernière intervention
16 juillet 2007
- 29 mars 2005 à 19:09
0
Merci
oui c'est sur, mais il fallait connaître la fonction ;)
Commenter la réponse de retaks666

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.