|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Выяснение путей до системных папок
Возникла необходимость хранить файлы программы в папке ApplicationData, но худо одно, как получить путь до этой папки?
Знаю, как получить путь до папки Windows, но там что-либо хранить от программы - глупо. Заранее, всем спасибо. P.S. В гугле был, но опять, времени мало Auta i Lome... |
#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 и дальнейшая приписка).
Auta i Lome... |
#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. |
#5
|
|||
|
|||
А зачем? Я сам уже дописал, у меня правда побольше но тоже работает Пришлось отдельный Unit делать.
Может кому интересно будет, во вложениях. А вот это я использовал раньше, но забыл Надо в закладки добавить... Auta i Lome... |