Die Variable AppData ist nicht nötig, wenn es sowieso Result zugewiesen wird. Dann gibt die obige Function bei Fehlschlagen auch einen ungültigen Pfad zurück?
Delphi-Quellcode:
function TForm1.GetDirectory: String;
begin
Result := SysUtils.GetEnvironmentVariable('appdata');
if FileCtrl.ForceDirectories(Result + '\PLC\Logs') then
Result := Result + '\PLC\Logs';
end;
// Alternativ
function TForm1.GetDirectory(const Default : String): String;
begin
Result := SysUtils.GetEnvironmentVariable('appdata');
if FileCtrl.ForceDirectories(Result + '\PLC\Logs') then
Result := Result + '\PLC\Logs' else Result := Default;
end;
Ist jetzt ungetestet, weil ich hier kein passendes Delphi zum ausprobieren hab'. D5 kennt "GetEnvironmentVariable" nicht, gibt die Function den Pfad mit/ohne Delimiter zurück?