IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)



Comment connaître le répertoire de mon application ?
auteur : hachesse
L'objet TApplication de l'unité Form contient un attribut ExeName: String; qui contient le nom de fichier de l'exécutable de l'application, y compris le chemin d'accès. Pour extraire uniquement le répertoire où se trouve notre programme, on utilisera la fonction function ExtractFileName(const FileName: String):String; de l'unité SysUtils.
Repertoire := ExtractFilePath(Application.ExeName);
Note : Application.ExeName contient la même valeur que ParamStr(0).
lien : Comment récupérer les paramètres passés au programme ?

Comment créer un répertoire ?
auteur : hachesse
On utilise la fonction CreateDir(const Dir: String): Boolean; de l'unité SysUtils. Il est toutefois préférable de tester préalablement si le répertoire n'existe pas déjà. Il est aussi bien vu de vérifier qu'il n'y ait pas eu d'erreurs lors de la création du répertoire.
Exemple de l'aide en ligne de Delphi :

         begin
                 if not DirectoryExists('C:\temp') then
                         if not CreateDir('C:\temp') then
                                 raise Exception.Create('Impossible de créer C:\temp');
                        
                
         end;
lien : Comment tester si un répertoire existe ?

Comment tester si un répertoire existe ?
auteur : hachesse
On utilise pour cela la fonction DirectoryExists(const Directory: String): Boolean; de l'unité SysUtils.

         begin
                 if DirectoryExists('C:\MyDirectory\') then
                         { le repertoire existe }
                 else
                         { le repertoire n'existe pas }
                
         end;
lien : Comment tester si un fichier existe ?

Comment retrouver le chemin du répertoire système de Windows ?
auteur : Atlantis
Selon la version de windows, le répertoire système de Windows n'est pas le même (system32 ou System). Pour retrouver ce répertoire, il suffit de le demander à Windows par le biais de la fonction GetSystemDirectory.

         function SystemDirectory: String;
         const
         dwLength: DWORD = 255;
         var
         SystemDir: PChar;
         begin
                 GetMem(SystemDir, dwLength);
                 GetSystemDirectory(SystemDir, dwLength);
                 Result := String(SystemDir);
                 FreeMem(SystemDir, dwLength);
         end;
        

Dans quel répertoire est installé Windows ?
auteur : Atlantis
Selon la version, Windows est installé en standard soit dans le répertoire C:\WINDOWS, soit dans le répertoire C:\WINNT. Pour retrouver ce répertoire, il suffit de le demander à Windows par le biais de la fonction GetWindowsDirectory.

         function WindowsDirectory: String;
         const
         dwLength: DWORD = 255;
         var
         WindowsDir: PChar;
         begin
                 GetMem(WindowsDir, dwLength);
                 GetWindowsDirectory(WindowsDir, dwLength);
                 Result := String(WindowsDir);
                 FreeMem(WindowsDir, dwLength);
         end;
        

Comment retrouver les répertoires spéciaux de Windows ?
auteur : Atlantis
Dans l'API Windows, il existe la fonction SHGetSpecialFolderLocation qui permet de récupérer le chemin des répertoires spéciaux de Windows : Bureau, Menu Démarrer...

Comment retrouver les répertoires spéciaux de Windows ?
auteur : Atlantis
Dans l'API Windows, il existe la fonction SHGetSpecialFolderLocation qui permet de récupérer le chemin des répertoires spéciaux de Windows : Bureau, Menu Démarrer...

         uses
                 Shlobj;
        
         function SpecialFolder(Folder: Integer): String;
         var
                 SFolder : pItemIDList;
                 SpecialPath : Array[0..MAX_PATH] Of Char;
         begin
                 SHGetSpecialFolderLocation(Form.Handle, Folder, SFolder);
                 SHGetPathFromIDList(SFolder, SpecialPath);
         Result := StrPas(SpecialPath);
         end;
        
         //Application :
         procedure TForm.MyButtonClick(Sender: TObject);
         begin
                 MyLabel.Caption := SpecialFolder(CSIDL_PERSONAL);
         end;
        
Selon le répertoire que l'on souhaite obtenir, vous devez utiliser l'une des variables suivante :
    CSIDL_APPDATA : Répertoire contenant les données des applications.
    CSIDL_COMMON_FAVORITES : Répertoire contenant les Favoris commun à tous les utilisateurs.
    CSIDL_COMMON_STARTMENU : Répertoire du menu démarrer commun à tous les utilisateurs.
    CSIDL_COMMON_PROGRAMS : Répertoire Programmes du menu démarrer commun à tous les utilisateurs.
    CSIDL_COMMON_STARTUP : Répertoire du groupe Démarrage du menu démarrer commun à tous les utilisateurs.
    CSIDL_COMMON_DESKTOPDIRECTORY : Répertoire correspondant au bureau commun à tous les utilisateurs.
    CSIDL_COOKIES : Répertoire ou sont stockés les cookies d'Internet Explorer.
    CSIDL_DESKTOP : Répertoire correspondant à votre Bureau.
    CSIDL_DESKTOPDIRECTORY : Répertoire correspondant à votre Bureau.
    CSIDL_FAVORITES : Répertoire Favoris.
    CSIDL_FONTS : Répertoire dans lequel sont stockés toutes les polices de caractères.
    CSIDL_HISTORY : Répertoire contenant les historiques d'Internet Explorer.
    CSIDL_INTERNET_CACHE : Répertoire ou sont stockés les fichiers temporaires de Internet Explorer.
    CSIDL_NETHOOD : Répertoire Voisinage Réseau.
    CSIDL_PERSONAL : Répertoire Mes Documents.
    CSIDL_PRINTHOOD : Répertoire de voisinage d'impression.
    CSIDL_PROGRAMS : Répertoire Programmes du Menu Démarrer.
    CSIDL_RECENT : Répertoire dans lequel se trouve les raccourcis vers les Fichiers Récemments ouverts.
    CSIDL_SENDTO : Répertoire dans lequel se trouve les raccourcis Envoyer vers
    CSIDL_STARTMENU : Répertoire Menu Démarrer.
    CSIDL_STARTUP : Répertoire du groupe Démarrage du Menu Démarrer.
    CSIDL_TEMPLATES : Répertoire contenant les modèles de documents de Windows.
lien :  MSDN - SHGetSpecialFolderLocation


Ce document issu de www.developpez.com est soumis à la licence GNU FDL traduit en français ici
Permission vous est donnée de distribuer, modifier des copies de cette page tant que cette note apparaît clairement.