Как получить постоянный каталог из Windows для хранения кэшированных миниатюр изображений? - PullRequest
1 голос
/ 22 января 2012

Я создаю систему кэширования миниатюр изображений, и одна из главных вещей, которые мне нужно сделать, - это спросить у Windows самое лучшее место для хранения моих постоянных кэшированных файлов. Я видел много хороших способов получения временных каталогов, но мне нужно постоянное расположение кеша. Как я могу получить это от Windows?

Примечание

Эта система будет фактически работать как служба Windows (или поток), работающая в фоновом режиме, а также многие приложения, читающие из этого кэша. Он должен быть на глобальном уровне, а не на пользователя Windows.

Ответы [ 2 ]

9 голосов
/ 22 января 2012

Сначала вам нужно выяснить, где хранить ваши данные.На MSDN есть список старых констант CSIDL.Чтобы получить путь из константы CSIDL, используйте функцию SHGetFolderPath следующим образом (uses ShFolder):

procedure TForm1.Button1Click(Sender: TObject);
var
  path: array[0..MAX_PATH] of char;
begin
  SHGetFolderPath(0, CSIDL_COMMON_APPDATA, 0, SHGFP_TYPE_CURRENT, @path);
  ShowMessage(path);
end;
0 голосов
/ 22 января 2012

GetEnvironmentVariable (PATH_NAME)

PATH_NAME может быть именем системы (WINDIR, TEMP, TMP и т. Д.), Но может быть заданным пользователем путем

...