AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Dateien Verschieben (MoveFile)

Offene Frage von "himitsu"
Ein Thema von Methrik · begonnen am 19. Nov 2013 · letzter Beitrag vom 19. Nov 2013
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.146 Beiträge
 
Delphi 12 Athens
 
#11

AW: Dateien Verschieben (MoveFile)

  Alt 19. Nov 2013, 13:43
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)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.

Geändert von himitsu (19. Nov 2013 um 13:53 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Methrik
Methrik

Registriert seit: 26. Sep 2013
Ort: San Andreas
3 Beiträge
 
Delphi XE3 Professional
 
#12

AW: Dateien Verschieben (MoveFile)

  Alt 19. Nov 2013, 13:56
Achja, fast vergessen

@Klaus01

Es hat mir ja gar keine Fehlermeldung geben können, da ich den Rückgabewert vergessen hab auszuwerten
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

Geändert von Methrik (19. Nov 2013 um 13:59 Uhr)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#13

AW: Dateien Verschieben (MoveFile)

  Alt 19. Nov 2013, 16:34
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;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.146 Beiträge
 
Delphi 12 Athens
 
#14

AW: Dateien Verschieben (MoveFile)

  Alt 19. Nov 2013, 17:11
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):
TFile.Move('SourceFileName', 'DestFileName');
Das ist eine Prozedur, wo auch gleich die Fehlerbehandlung mit eingebaut ist, also eine Exception, wenn es Probleme gab.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz