{Voici la fonction qui permet de retrouver un repertoire d'après sa valeur CSIDL
nescessite l'utilisation dans les Uses de l'unité ShlObj}
Function GetFolder(CSIDLValue: integer): String;
Var
IdList : PITEMIDLIST;
Folder : Array[0..MAX_PATH] Of Char;
Begin
if Not Failed(SHGetSpecialFolderLocation(0, CSIDLValue, IdList)) then
Begin
SHGetPathFromIDList(IdList, Folder);
Result := Folder;
End;
End;
{Utilisation pour : Obtenir le chemin d'accès pour le dossier Mes Documents}
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := GetFolder(CSIDL_PERSONAL);
end;