delphi obtenir chemin d'accès au dossier

Je travaille avec Delphi 7 et je veux trouver le chemin de mon .. /Tous les Utilisateurs/Documents répertoire.

Je suis tombé sur le code suivant

uses shlobj, ...

function GetMyDocuments: string;
 var
  r: Bool;
  path: array[0..Max_Path] of Char;
 begin
  r := ShGetSpecialFolderPath(0, path, CSIDL_Personal, False) ;
  if not r then 
    raise Exception.Create('Could not find MyDocuments folder location.') ;
  Result := Path;
 end;

Il fonctionne très bien mais il ne prend pas en charge CSIDL_COMMON_DOCUMENTS qui retourne le chemin d'accès souhaité.

En outre, comme par MS CSIDL ne devrait plus être utilisée au lieu d'utiliser KNOWNFOLDERID .

Et je n'ai besoin de travailler cette application sur plusieurs OS (windows uniquement).

Comment puis-je faire cela ?

L'aide est apprécié 🙂

OriginalL'auteur Shirish11 | 2012-01-03