Hallo,
ich habe mal wieder ein Problem. Und zwar möchte ich eine Datei Kopieren und gegebenenfalls überscheiben.
Hierzu nutze ich die Funktion "CopyFile(...)".
Ich weise den Parameter "FailIfExists" durch das ergebnis eines MessageDlg's zu.
Das ganze sieht wie Folgt aus:
Delphi-Quellcode:
var
Index: Integer;
NewFolder: String;
FailIfExists: Boolean;
begin
NewFolder := GetEnvironmentVariable('USERPROFILE') + '\Documents\';
for Index := 0 to ListBox1.Items.Count - 1 do
begin
if ListBox1.Selected[Index] = True then
begin
if FileExists(NewFolder + ChangeFileExt(ListBox1.Items.Strings[Index],'.txt')) = True then
begin
FailIfExists := (MessageDlg('Die Datei "' + ListBox1.Items.Strings[Index] + '" existiert bereits.' + sLineBreak + 'Soll diese überschieben werden?',mtWarning,mbYesNo,0) <> mrYes);
end;
CopyFile(PChar(CurrentFolder + '\' + ChangeFileExt(ListBox1.Items.Strings[Index],'.txt')),PChar(NewFolder + ChangeFileExt(ListBox1.Items.Strings[Index],'.txt')),FailIfExists);
end;
end;
Es wird eine Datei kopiert, falls die Zieldatei nicht vorhanden ist. Außerdem wird die Variable "FailIfExists" korrekt zugewiesen (True, falls die Datei nicht überschrieben werden soll und False, falls die Datei überschrieben werden soll). Allerdings wird die Datei, auch wenn "FailIfExists" auf False steht, nicht überschrieben. "RaiseLastOSError" zeigt nichts verdächtiges an und es wird auch in den virtualisierten Verzeichnissen nichts angelegt.
Könnte mir jemand sagen, woran dies liegt?
Danke!