SaveToFile fragt niemals.
Entweder es erstellt die Datei, oder überschreibt sie.
Du kannst vorher mit FileExists prüfen, oder du speicherst über SaveToStream mit einem TFileStream oder THandleStream+CreateFile,
da hast du dann die Wahl, ob immer ersellt/überschrieben werden soll, oder nur NeuErstellt, bzw. nur überschrieben.
Bei fehlenden Berechtigungen kommt es natürlich zu einer
Exception.
Intern mit SaveToStream kann es niemals zu einem Konflikt kommen, da dort der Dateiname/Pfad egal ist.
PS: Mann kann in einer ZIP auch CaseSensitive speichern.
BILD.jpg
BILD.JPG
BILD.jpG
bild.jpg
...
das sind dann alles unterschiedliche Dateien.
Es lassen sich auch darin Dateien mit dem Namen "COM1" und Dergleichen speichern, aber sowas lässt sich im Windows nicht auf der Festplatte speichern.