я использую следующий код для получения специальных каталогов
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;
И теперь я хочу получить путь к моим документам поэтому я использую mydocfolderpath: = string (FBuf) + '\ Documents', и я думаю, что он работает хорошо но я сомневаюсь, что это путь mydocuments на всех ПК с Windows (personalfolder/documents), который пользователь может изменить эту структуру и сделать мою папку с документами anywhare else (например: c:\documents) если пользователь меняет путь, дайте мне правильный путь, и мне нравится знать, что такое имя папки mydocuments (Мои документы или документы)