Einzelnen Beitrag anzeigen

Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
485 Beiträge
 
Delphi 11 Alexandria
 
#1

CopyFile Datei wird nicht überschrieben

  Alt 11. Okt 2015, 19:26
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!
Dennis
  Mit Zitat antworten Zitat