Программирование: GetShellFolderByCSIDL

Прототип

function GetShellFolderByCSIDL(const Folder: Integer; const Create: Boolean): String;

Описание

Возвращает абсолютный путь к указанной папке оболочки. Папку параметра Folder определяет глобально уникальный идентификатор CSIDL (полный список идентификаторов может быть найден в файле ShlObj.h). Если параметру Create задано значение True и папка не существует, то она будет создана. В случае ошибки функция вернёт пустую строку.

Комментарии

Рекомендуется всегда указывать значение True в параметре Create. Иначе, если значение CSIDL действительно, но папка в текущий момент ещё не существует, работа функции может завершиться исключением (это известная проблема Windows).

Пример

const
  CSIDL_MYPICTURES = $0027;

...

var
  Path: String;
begin
  Path := GetShellFolderByCSIDL(CSIDL_MYPICTURES, True);
  if Path <> '' then
  begin
    MsgBox('Путь к папке "Изображения" = ' + Path, mbInformation, MB_OK);
  end
  else
  begin
    // обработка не удалась
  end;
end;