Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Einfaches Kopieren "ohne Error" (https://www.delphipraxis.net/85751-einfaches-kopieren-ohne-error.html)

Tumm 4. Feb 2007 12:26


Einfaches Kopieren "ohne Error"
 
Langsam frag ich mich echt, ob ich zu dumm bin...

Ich probiere schon seit geraumer Zeit eine Datei mit CopyFile zu kopieren. Aber mit GetLastError meint er nur, dass der Zugriff verweigert worden sei. Eine richtige Fehlermeldung spuckt er ansonsten gar nicht aus.
Ich habe auch schon nachgeprüft, ob die Datei noch von meinem Programm benutzt wurde. Ich habe noch den AntiVir Guard laufen aber der kann das ja eigentlich nicht stoppen, oder?
Meinetwegen kann auch ganz normal der "Kopieren"-Dialog angezeigt werden; Hauptsacher er machts!

Im Forum hab' ich keine Antwort drauf gefunden.

Zacherl 4. Feb 2007 12:28

Re: Einfaches Kopieren "ohne Error"
 
Kann es sein, dass CopyFile nur GetLastError keinen neuen Wert zuweist?

Tumm 4. Feb 2007 12:30

Re: Einfaches Kopieren "ohne Error"
 
wie jetzt? GetLastError sagt, dass er keinen Zugriff bekommen hat (Zugriff verweigert)

Tumm 4. Feb 2007 12:37

Re: Einfaches Kopieren "ohne Error"
 
Schafft CopyFileEx Abhilfe? Das ist irgendwie so kompliziert...

C.Schoch 4. Feb 2007 12:49

Re: Einfaches Kopieren "ohne Error"
 
Hi,
Geht die Datei denn mit dem Explorer kopieren?
Das Kopieren mit CopyFile schlägt auch fehl wenn Quell oder Zieldatei: Schreibgeschützt, System, oder Versteckt ist.
Fragst du den Rückgabewert von CopyFile ab?
Zeig doch mal ein bischen Code sonst ist das ein Ratespiel.

Tumm 5. Feb 2007 14:42

Re: Einfaches Kopieren "ohne Error"
 
hi. das ganze soll ein kleiner ID3-TAG Ausleser werden, der die Musikdateien nach Interpret sortiert.

Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var
t: Tid3Tag;
filestream, f2: TFileStream;
begin
f1 := TStringList.Create;
tray.Visible := true;
//form3.Visible := false;
tray.BalloonHint := 'Der Vorgang wird durchgeführt...';
tray.ShowBalloonHint;
Memo1.Lines.BeginUpdate;
Memo1.Lines.Add('Suche nach Dateien...');
list.Clear;
c := 0;
list.Clear;
listfiles(list);
Memo1.Lines.Add(IntToStr(list.Count) + ' MP3-Dateien gefunden!');
Memo1.Lines.Add('Starte Sortierung...');
c := 0;
while c < list.Count do begin
t := readid3Tag(list[c]);
Memo1.Lines.Add('Datei gefunden: ' + list[c]);
try
MkDir('.\' + t.Artist);
except
//Do nothing
end;
Memo1.Lines.Add('Kopiere Datei...');
CopyFile(Pchar('.\' + list[c]), Pchar('.\' + t.Artist + '\' + list[c]), true);
Inc(c);
deletefile('.\' + list[c]);
end;
Memo1.Lines.Add('Process done!');
tray.Visible := false;
//form3.Visible := true;
Memo1.Lines.EndUpdate;
end;

himitsu 5. Feb 2007 14:51

Re: Einfaches Kopieren "ohne Error"
 
Was macht listfiles(list); eigentlich?
Also genauer gesagt, wie sehen die Pfade der Dateien in der Liste aus?


Durch '.\' + muß es ja ein relativer Pfad sein, ansonsten gibt es die Datei nicht, welches diesen Fehler erklären könnte.



PS: Ich würde DeleteFile nur ausführen, wenn CopyFile erfolgreich war.

Oder du verschiebst die Datei direkt (is ja alles auf dem selben Laufwerk), womit das Löschen entfallen würde.

Tumm 5. Feb 2007 14:55

Re: Einfaches Kopieren "ohne Error"
 
wie kann man denn direkt verschieben?

listfiles is ne andere prozedur

himitsu 5. Feb 2007 15:04

Re: Einfaches Kopieren "ohne Error"
 
Zitat:

Zitat von Tumm
listfiles is ne andere prozedur

Das ist es ja ... listfiles liefert doch die Dateiliste, welche von CopyFile verwendet wird. :zwinker:

MSDN-Library durchsuchenMoveFile

Tumm 5. Feb 2007 16:25

Re: Einfaches Kopieren "ohne Error"
 
Also ich hab' CopyFile mal durch MoveFile ersetzt und deletefile weggemacht und es geht immer noch nicht. Die Dateien sind ganz sicher nicht schreibgeschützt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:43 Uhr.
Seite 1 von 2  1 2      

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