![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Возникла необходимость хранить файлы программы в папке ApplicationData, но худо одно, как получить путь до этой папки?
Знаю, как получить путь до папки Windows, но там что-либо хранить от программы - глупо. Заранее, всем спасибо. P.S. В гугле был, но опять, времени мало ![]() |
|
#2
|
|||
|
|||
|
Если лучше предложений не будет, то можно воспользоваться переменными окружения системы.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
userprof: PChar;
AppData: string;
begin
GetMem(userprof, 256);
ExpandEnvironmentStrings(PChar('%userprofile%'), userprof, 254);
AppData := StrPas(userprof) + '\Application Data';
FreeMem(userprof, 256);
ShowMessage(AppData);
end; |
|
#3
|
|||
|
|||
|
Спасибо! Работает, но видите, папка "ApplicationData" так называется не во всех версиях Windows, поэтому пришлось доработать код (выяснить версию Windows и дальнейшая приписка).
|
|
#4
|
|||
|
|||
|
BloodFooria, вот, пожалуйста...
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
PIDL: PItemIDList;
Path: LPSTR;
AppDataPath: string;
begin
Path := StrAlloc(MAX_PATH);
try
SHGetSpecialFolderLocation(Handle, CSIDL_APPDATA, PIDL);
SHGetPathFromIDList(PIDL, Path);
AppDataPath := StrPas(Path);
ShowMessage(AppDataPath);
finally
StrDispose(Path);
end;
end;P.S. Я использовала это! =) Последний раз редактировалось Nyctos Kasignete, 04.04.2009 в 18:17. |