Entwickler-Ecke

Dateizugriff - Movefile macht nicht was es soll


$ebbi - Do 24.05.12 14:11
Titel: Movefile macht nicht was es soll
Hey,

ich würde gerne Dateien von einem Ordner in den anderen Ordner verschieben. Die ganzen Dateinamen werden in eine Listbox geladen (lbsave) und dann sollen alle Dateien verschoben werden mit Ausnahme der letzten x-Stück. eigentlich klappt alles ich hab mir anzeigen lassen auf welche Pfade er zugreift und ob die Dateien existieren, dass ist auch beides der Fall, aber komischerweise verschiebt er nichts. woran liegt das?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
  for j:=0 to lbsave.items.Count-x do                                           
  begin
  verz1:=edit1.text+lbsave.items[j];
  verz2:=edit2.Text+lbsave.items[j];
  movefile (pchar(verz1) , pchar(verz2));
  //if fileexists(pchar(verz1)) then showmessage('datei 1 existiert');
  //if fileexists(pchar(verz2)) then showmessage('datei 2 existiert');
  //showmessage (verz1 + ' // ' + verz2);
  end;



Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Do 24.05.2012 um 15:09


Delete - Do 24.05.12 14:37

MoveFile hat einen Rückgabewert, den sollte man mal auswerten.


$ebbi - Do 24.05.12 14:55

user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
MoveFile hat einen Rückgabewert, den sollte man mal auswerten.


Das ist bestimmt ne ganz dumme Frage aber wie mach ich dass?


Andreas L. - Do 24.05.12 15:10

user profile icon$ebbi hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconLuckie hat folgendes geschrieben Zum zitierten Posting springen:
MoveFile hat einen Rückgabewert, den sollte man mal auswerten.


Das ist bestimmt ne ganz dumme Frage aber wie mach ich dass?


MoveFile Beschreibung auf MSDN: http://msdn.microsoft.com/en-us/library/aa365239%28VS.85%29.aspx
Da steht u. a.
Zitat:

Return value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.



Delphi-Quelltext
1:
2:
3:
4:
  if not MoveFile(Verz1, Verz2) then
  begin
    ShowMessage('Verschieben fehlgeschlagen!' + sLineBreak + 'Fehlermeldung:' + sLineBreak + SysErrorMessage(GetLastError));
  end;


$ebbi - Do 24.05.12 15:24

Moderiert von user profile iconNarses: Komplett-Zitat des letzten Beitrags entfernt.

so hab die lösung jetzt gefunden, er konnte die datei nicht verschieben, wenn im anderen ordner eine datei mit dem gleichen name bereits existiert


Delete - Do 24.05.12 16:05

Und ich nehme an, das hat dir die Fehlermeldung verraten?