Path: C:\Programme
\ = etwas in dem Verzeichnis (Pfadangabe für eine Datei/Verzeichnis zum Anhängen, also mit abschließendem PathDelimiter)
Directory, bzw. Pathname: C:\Programme = das Verzeichnis selber (der Verzeichnisname, also ohne abschließenden PathDelimiter)
Filepath: C:\Programme\Meine.exe = eine bestimmte Datei (inkl. Pfad)
Filename: Meine.exe = irgendeine Datei (ohne Pfad)
SaveToFile benötigt einen FileName, aber idealer Weise besser einen kompletten FilePath
Du schreibst aber erstmal einem Path in die Variable und der Auswahldialog wählt dann nur ein Verzeichnis (Dir).
PS: '\', oder
PathDelim,
TPath.DirectorySeparatorChar oder besser mit
TPath.Combine .