flo160fr
Messages postés157Date d'inscriptiondimanche 19 novembre 2000StatutMembreDernière intervention14 avril 2009
-
6 juin 2006 à 14:02
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 2022
-
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:\'...
cs_fjohnny
Messages postés46Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention18 septembre 2006 6 juin 2006 à 14:14
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;
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 7 juin 2006 à 00:03
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;
flo160fr
Messages postés157Date d'inscriptiondimanche 19 novembre 2000StatutMembreDernière intervention14 avril 2009 7 juin 2006 à 10:29
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)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 7 juin 2006 à 12:52
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é