
| 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 ?
|
| 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 ?
|
| 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 ?
|
| 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;
|
| 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;
|
| 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... |
| 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.
|