i utilise le code suivant pour obtenir des répertoires spéciauxGet Mes documents chemin du dossier dans delphi
uses
ActiveX, ShlObj;
{...}
procedure TForm1.Button1Click(Sender: TObject);
// Replace CSIDL_HISTORY with the constants below
var
Allocator: IMalloc;
SpecialDir: PItemIdList;
FBuf: array[0..MAX_PATH] of Char;
PerDir: string;
begin
if SHGetMalloc(Allocator) = NOERROR then
begin
SHGetSpecialFolderLocation(Form1.Handle, CSIDL_PERSONAL, SpecialDir);
SHGetPathFromIDList(SpecialDir, @FBuf[0]);
Allocator.Free(SpecialDir);
ShowMessage(string(FBuf));
end;
end;
Et maintenant je veux obtenir le chemin de mes documents donc j'utilise mydocfolderpath: = string (FBUF) + ' \ Documents 'et je pense que cela fonctionne bien mais mon doute est-ce le chemin mydocuments sur tous les PC Windows (personalfolder/documents) peut changer cette structure de l'utilisateur et rendre mon dossier de documents anywhare else (par exemple: c: \ documents) si l'utilisateur un changement le chemin me donner une bonne façon et j'aime savoir quel est le nom du dossier mydocuments (Mes Documents ou Documents)
Sachez que certaines versions de Windows utilisent localisé les noms de chemin. À moins d'être absolument certain de la version et de la langue utilisées, n'ajoutez jamais de nom de dossier «spécial» en tant que chaîne de caractères en anglais ou dans une autre langue. Ce n'est peut-être pas le bon nom sur le système cible. Utilisez toujours l'un des CSIDL_ spécifiques ou leur équivalent récent. –