Auf SetSize reagierst du nicht, also da sollte ja die Dateigröße angepaßt werden.
Wieso schneidest du das Ende des übergebenen Pfades ab?
Es würde mir nicht gefallen, wenn ein anderer Pfade verwendet würde, als ich angegeben hab.
Delphi-Quellcode:
if APath = '' then
// Temp-Pfad holen
Path := GetDirTemp
else
Path := IncludeTrailingPathDelimiter( APath );
Ansonsten sieht es gibt aus, vorallem FILE_ATTRIBUTE_TEMPORARY und FILE_FLAG_DELETE_ON_CLOSE.
Als kleinen Schönheitsfehler, das Const in
const Stream : TStream
ist unnötig
und im Prinzip auch "falsch", da du den Stream, also .Position kurzzeitig veränderst.