Mega Code Archive

 
Categories / Delphi / Files
 

How to get windows, system, temporary directory

Title: How to get windows, system, temporary directory { Getting the Windows Directory } function GetWinDir: string; var dir: array [0..MAX_PATH] of Char; begin GetWindowsDirectory(dir, MAX_PATH); Result := StrPas(dir); end; // or: function WindowsDirectory: string; var WinDir: PChar; begin WinDir := StrAlloc(MAX_PATH); GetWindowsDirectory(WinDir, MAX_PATH); Result := string(WinDir); if Result[Length(Result)] '\' then Result := Result + '\'; StrDispose(WinDir); end; // or: function GetWindowsDirectory(var S: String): Boolean; var Len: Integer; begin Len := Windows.GetWindowsDirectory(nil, 0); if Len 0 then begin SetLength(S, Len); Len := Windows.GetWindowsDirectory(PChar(S), Len); SetLength(S, Len); Result := Len 0; end else Result := False; end; { Getting the System Directory } function SystemDir: string; var dir: array [0..MAX_PATH] of Char; begin GetSystemDirectory(dir, MAX_PATH); Result := StrPas(dir); end; // or: function SystemDirectory: string; var SysDir: PChar; begin SysDir := StrAlloc(MAX_PATH); GetSystemDirectory(SysDir, MAX_PATH); Result := string(SysDir); if Result[Length(Result)] '\' then Result := Result + '\'; StrDispose(SysDir); end; // or: function GetSystemDirectory(var S: String): Boolean; var Len: Integer; begin Len := Windows.GetSystemDirectory(nil, 0); if Len 0 then begin SetLength(S, Len); Len := Windows.GetSystemDirectory(PChar(S), Len); SetLength(S, Len); Result := Len 0; end else Result := False; end; { Getting the Temporary Directory } function GetTempDir: string; var Buffer: array[0..MAX_PATH] of Char; begin GetTempPath(SizeOf(Buffer) - 1, Buffer); Result := StrPas(Buffer); end; // or: function GetTempPath: string; var TmpDir: PChar; begin TmpDir := StrAlloc(MAX_PATH); GetTempPath(TmpDir, MAX_PATH); Result := string(TmpDir); if Result[Length(Result)] '\' then Result := Result + '\'; StrDispose(TmpDir); end; // or: function GetTempPath(var S: String): Boolean; var Len: Integer; begin Len := Windows.GetTempPath(0, nil); if Len 0 then begin SetLength(S, Len); Len := Windows.GetTempPath(Len, PChar(S)); SetLength(S, Len); Result := Len 0; end else Result := False; end; Usage Example: procedure TForm1.Button1Click(Sender: TObject); begin label1.Caption := GetWinDir; label2.Caption := GetSysDir; label3.Caption := GetTempDir; end;