Das würd' ich dann aber noch etwas anpassen:
Delphi-Quellcode:
function ForceFile(dateiname: string; bereits_vorhandene_datei_trotzdem_neu_erstellen: Boolean = False) : Boolean;
var
f: Text;
begin
Result := ForceDirectories(ExtractFilePath(Dateiname));
if Result then begin
if not FileExists(dateiname) or bereits_vorhandene_datei_trotzdem_neu_erstellen then begin
AssignFile(f, dateiname);
ReWrite(f);
CloseFile(f);
end;
end;
Result := FileExists(dateiname);
end;
...
if ForceFile(datei) then begin
Stringlist.Create;
StringList.LoadfromFile(datei);
...
StringList.SaveToFile(datei);
StringList.Free;
end else begin
// Fehlerbehandlung ...
end;
Bei fehlender Verzeichnisstruktur wird Deine Variante (vermutlich) scheitern, himitsus Einzeiler
if FileExists(...) then SL.LoadFromFile(..);
ebenfalls, wenn die Stringliste per SaveToFile gespeichert werden soll.