Klingt komisch. Wie lautet der Pfad? Macht es einen Unterschied, ob das Programm als Administrator läuft? Läuft es überhaupt als ein Benutzer oder als Dienst? Funktioniert GetEnvironmentVariable('TEMP')?
Übrigens ist
Delphi-Quellcode:
if not DirectoryExists(fname) then begin
if not ForceDirectories(fname) then begin
doppelt. ForceDirectories schließt DirectoryExists ein.