Dossier racine [Résolu]

flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 6 juin 2006 à 14:02 - Dernière réponse : Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention
- 7 juin 2006 à 12:52
Bonjour,

Je voudrai savoir comment faire pour aler au dossier racine du dossier actuel...
Je m'explique avec un exemple :
J'ai ce chemin : 'c:\windows\system32\'
et je voudrai obtenir : 'c:\windows\' quand je clique sur un bouton
et que quand je reclique dessu j'ai 'c:\'...

Merci d'avance !
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_fjohnny 49 Messages postés lundi 16 décembre 2002Date d'inscription 18 septembre 2006 Dernière intervention - 6 juin 2006 à 14:14
3
Merci
Voilà une petite fonction que j'ai fait et qui peut peut-etre résoudre ton problème.

function DossierParent(Path : String): String;
Var i: Integer;
begin
For i:=length(Path)-1 downto 1 do
if Path[i]='\' then Break;
Result:=Copy(Path,1,i);
end;

Merci cs_fjohnny 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_fjohnny
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 6 juin 2006 à 14:19
0
Merci
Merci beaucoup !
Commenter la réponse de flo160fr
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 7 juin 2006 à 00:03
0
Merci
Salut,
Il y a beaucoup plus simple pour aller au dossier parent :

ChDir( '..' );  // pour Change Directory et  '..'  pour remonter au dossier parent

Exemple d'utilisation ( deux label et un bouton) et :

Procedure TForm1.Button6Click(Sender: TObject);
Var S : String;
begin
 GetDir(0, S); // On récupère le répertoire actuel
 Label1.Caption := S; // On l'affiche
 ChDir('..'); // On remonte au dossier parent
 GetDir(0, S); // On récupère son nom
 Label2.Caption := S; // et on l'affiche
end;

y a pas plus simple que ça

@+
Cirec
Commenter la réponse de Cirec
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 7 juin 2006 à 10:29
0
Merci
le seul probleme avec ton code Cirec, c'est que ChDir('..'); renvoi le dossier parent de l'executable... ce qui pose problème dans le cas d'un explorateur de fichier, car on ne part pas forcément du dossier racine de l'application (mais merci quand meme)
Commenter la réponse de flo160fr
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 7 juin 2006 à 12:52
0
Merci
Alors pour ton information :
ChDir ne renvoie pas au dossier parent de l'exécutable

Mais il renvoie au du dossier courant

Tu parles bien dans ta question de "comment faire pouraler au dossier racinedu dossier actuel..."

dans ce cas on suppose que le dossier courant est le dossier de départ.

Mais dans l'exemple que je te donne il est normal de partir du répertoire de l'application, puisque aucun changement de répertoire n'a été fait avant.

Mais si tu effectues un changement de répertoire avant d'appeler l'exemple tu verras qu'il part du dernier répertoire selectionné.

Où tu peux le faire directement avec ChDir( 'Dossier de Départ' ) puis ChDir( '..' );

De même si tu te places dans C\Windows\System32
et que de la tu tappes C:\mon_Prog\Mon_Prog.exe
ChDir aura comme répertoire de départ C\Windows\System32  mais en aucun cas
C:\mon_Prog

Il faut consulter l'aide de Delphi de temps en temps

Mais si c'est pour un Explorer  tu en as pas besoin.
L'utilisation d'un TTreeNodes me semble plus approprié

@+
Cirec
Commenter la réponse de Cirec

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.