Moin Mackhack,
wenn s leer ist bekommst Du so aber eine
AV.
Andere, von Deiner abgeleitete Variante:
while (AnsiLastChar(s) <> nil) and (AnsiLastChar(s)^ = '\') do SetLength(s,length(s)-1);
Dann gibt es noch die Delphifunktion ExcludeTrailingPathDelimiter, die für meinen Geschmack nur den Nachteil hat, dass sie bei mehreren aufeinanderfolgenden \ nur den letzten wegnimmt.