Wie wäre es denn hiermit:
(edit:
Oh, der Delphi-Code rückt ja gar nicht automatisch ein... Naja, egal...)
Delphi-Quellcode:
function GetGoodFileName(FileName: String): String;
var
tmp, path, ext: String;
i: integer;
begin
ext:=ExtractFileExt(FileName);
path:=copy(FileName, 1, length(FileName)-length(ext));
tmp:=FileName;
i:=1;
while NOT FileExists(tmp) do
begin
inc(i);
tmp:=path + '(' + IntToStr(i) + ')' + ext;
end;
Result:=tmp;
end;
procedure TForm1.Button1Click(Sender: TObject);
var tmp: String;
begin
if SaveDialog1.Execute then
begin
s:=GetGoodFileName(SaveDialog1.FileName);
// todo : Speichern in s
end;
end;
Wenn du den OverWritePrompt des SaveDialogs auf FALSE lässt (Voreinstellung), dann fragt er nicht nach, wenn man einen bereits existierenden Dateinamen angibt, sondern speichert in die entsprechend nummerierte Datei.
Der Thread ist zwar schon ein paar Tage alt, aber vielleicht hilft dir das ja doch noch...