Получение переменных окружения ОС:
То есть получение пути к некой папке appfolder в User Application Data
const dirName= '%appdata%\appfolder';
var dirNameApp: string;
Function GetEnvironmentStrings(): TStrings;
var
ptr: PChar;
s: string;
Done: boolean;
ss:TStrings;
begin
ss := TStringList.Create();
s:='';
Done:=FALSE;
ptr:=windows.GetEnvironmentStrings;
while Done=false do
begin
if ptr^=#0 then
begin
inc(ptr);
if ptr^=#0 then Done:=TRUE
else ss.Add(s);
s:=ptr^;
end else s:=s+ptr^;
inc(ptr);
end;
result := ss;
end;
dirNameApp := GetEnvironmentStrings().Values['APPDATA'];
или так:
function GetWin(Comand: string): string;
var
buff: array [0 .. $FF] of char;
begin
ExpandEnvironmentStrings(PChar(Comand), buff, SizeOf(buff));
Result := buff;
end;
dirNameApp:= GetWin(dirName);
пример вызова
procedure TForm1.Refreshing();
var
SR: TSearchRec;
FindRes: Integer;
dirName2: string;
begin
Form1.ListBox1.Clear;
dirName2 := GetWin(dirName);
dirName2:=dirName2+'\*'+'.txt';
FindRes := FindFirst(dirName2, faAnyFile, SR);
while FindRes = 0 do
begin
// если каталог не найден
if ((SR.Attr and faDirectory) = faDirectory) and
// если расширение "." или "..":
((SR.Name = '.') or (SR.Name = '..')) then
begin
FindRes := FindNext(SR);
Continue;
end;
// Form1.ListBox1.Items.Add(SR.Name);
Form1.ListBox1.Items.Add(Copy(SR.Name, 1, length(SR.Name)-4));
FindRes := FindNext(SR);
end;
FindClose(SR);
end;
Комментариев нет:
Отправить комментарий