Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dateien Verschieben (MoveFile) (https://www.delphipraxis.net/177656-dateien-verschieben-movefile.html)

himitsu 19. Nov 2013 12:43

AW: Dateien Verschieben (MoveFile)
 
Zitat:

Zitat von Methrik
es lag nur daran, dass ich dem anderen Dateipfad nicht den neuen Namen der Datei zugewiesen habe.

Die hatten zwar recht, aber dennoch Nein.


[edit]
Hab's durchgestrichen.

Es kommt dann eine Fehlermeldung vonwegen "Datei ist schon vorhanden" (auch wenn es eigentlich bedeutet: Verzeichnis vorhanden, welches genauso heißt, wie die Zieldatei)

Methrik 19. Nov 2013 12:56

AW: Dateien Verschieben (MoveFile)
 
Achja, fast vergessen

@Klaus01

Es hat mir ja gar keine Fehlermeldung geben können, da ich den Rückgabewert vergessen hab auszuwerten :oops:
Und Delphi hat mir von sich aus überhaupt keine Fehler gemeldet
:)


[Edit]

Okay himitsu, dann hab ich das aufgrund der fehlenden Augabe einfach nicht sehen können.
Aber trotzdem danke für deinen/euren Einsatz ;)

Perlsau 19. Nov 2013 15:34

AW: Dateien Verschieben (MoveFile)
 
Wieso nicht einfach mit SysUtils.RenameFile verschieben? Funktioniert bei mir seit Jahr & Tag fehlerfrei:
Delphi-Quellcode:
procedure TFormMain.HM_Datei_VerschiebenClick(Sender: TObject);
VAR
   i, z : Integer;
   Datei_Alt,
   DateiName,
   Pfad_Neu,
   Datei_Neu : String;

begin
     z := DateiListe.Count;
     IF z = 0 THEN
     BEGIN
          ShowMessage('Keine Dateien zum Verschieben gefunden ...');
          EXIT;
     END;

     Pfad_Neu := IncludeTrailingBackslash(DirList_Ziel.Directory);

     FOR i := 0 TO z-1 DO
     BEGIN
          Datei_Alt := DateiListe[i];
          DateiName := ExtractFileName(Datei_Alt);
          Datei_Neu := Pfad_Neu + DateiName;

          IF NOT SysUtils.RenameFile(Datei_Alt,Datei_Neu) THEN
          SHowMessage(DateiName + ' fehlgeschlagen ...');

     END;

     ShowMessage(IntToStr(z) + ' Dateien verschoben ...');
end;

himitsu 19. Nov 2013 16:11

AW: Dateien Verschieben (MoveFile)
 
Renamefile ändert am Problem aber garnichts.
Das Einzige, was man sich hier erspart, ist die String->PChar-Konvertierung.
Delphi-Quellcode:
function RenameFile(const OldName, NewName: string): Boolean;
begin
{$IFDEF MSWINDOWS}
  Result := MoveFile(PChar(OldName), PChar(NewName));
{$ENDIF MSWINDOWS}
...
end;

IOUtils (seit XE, XE2 oder so):
Delphi-Quellcode:
TFile.Move('SourceFileName', 'DestFileName');

Das ist eine Prozedur, wo auch gleich die Fehlerbehandlung mit eingebaut ist, also eine Exception, wenn es Probleme gab.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz