Theoretisch und praktisch könnte man die Zeile mit dem
IncludeTrailingPathDelimiter
bzw.
IncludeTrailingBackslash
auch ganz rausnehmen, denn der Übergabeparameter heißt
Path
= Pfad.
Und ein Pfad ist ganz eindeutig definiert mit einem Pfadtrennzeichen am Ende, denn ansonsten ist es kein Pfad, sondern ein Verzeichnis oder sogar eine Datei.
Das mit dem
IncludeTrailing...
ist also nur ein Notnagel, falls der Programmierer den Funktionsaufruf nicht durchliest und - im Grunde genommen - einen falschen Wert übergibt.
Wenn ich eine Funktion baue
procedure Foo( const Vorname, Nachname : string ) : string;
dann sollte ich ja auch nicht Vor- und Nachname vertauschen, auch wenn das funktioniert, weil es beides ein String ist
Somit ist der Ursprungscode von Popov weder falsch noch funktioniert er nicht richtig, sondern hat keinen DAU-Filter drinnen