![]() |
idftp: Transfer Aborted Broken Pipe
Hallo alle zusammen.
Ich versuche gerade eine Datei per IdFTP herunterzuladen. Damit die Progressbar auch den Fortschritt anzeigt, versuche ich die Dateigrösse auf dem Server mit: idftp.size herauszufinden. Und eigentlich funktioniert es auch (also meistens) :) Aber merkwürdgerweise kommt bei einzelnen Dateien (immer bei den selben) folgende Meldung: Transfer Aborted Broken Pipe Wenn ich dann die zwei Zeilen rausnehme, also ohne Fortschrittanzeige, dann funktionierts bei allen Dateien:
Delphi-Quellcode:
Weiss jemand wo das Problem entsteht und wie man es lösen kann? :)
BytesToTransfer:= IdFTP1.Size(Listbox1.Items[i]);
bytestotransfer:=bytestotransfer div 1024;
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var I: Integer; search: string; begin ListBox1.Clear; idftp1.ChangeDir(listbox2.Items[listbox2.ItemIndex]); IdFTP1.List(); for I := 0 to IdFtp1.DirectoryListing.Count - 1 do ListBox1.Items.Add(IdFtp1.DirectoryListing.Items[I].FileName); search := '.'; if SendMessage(form1.ListBox1.Handle, lb_selectstring, - 1, Longint(PChar(search))) <> LB_ERR then listbox1.DeleteSelected; search := '..'; if SendMessage(form1.ListBox1.Handle, lb_selectstring, - 1, Longint(PChar(search))) <> LB_ERR then listbox1.DeleteSelected; if listbox1.Items.Count>0 then begin for i := 0 to Listbox1.Items.Count - 1 do begin BytesToTransfer:= IdFTP1.Size(Listbox1.Items[i]); bytestotransfer:=bytestotransfer div 1024; IdFTP1.Get(Listbox1.Items[i], edit1.text+'\'+listbox1.Items[i], true); end; end else begin Showmessage('Leider kann diese Datei nicht heruntergeladen werden. Sorry'); idftp1.ChangeDir('..'); end; idftp1.ChangeDir('..'); end; |
AW: idftp: Transfer Aborted Broken Pipe
Was ich noch herausgefunden habe:
Bei den Dateien, bei denen es nicht funktioniert, erhalte ich einen Minus Wert bei der .Size abfrage (zB: -1713788) Es hat aber anscheinend keinen Zusammenhang mit der Dateigrösse. So kann ich zb eine 4,7GB Grosse Datei Problemlos abfragen und andererseits eine 2,5 GB grosse nicht (ergibt dann eben diesen Minus Wert) |
AW: idftp: Transfer Aborted Broken Pipe
Zum Fehler kann ich nichts sagen.
Ich hole mir die Werte über die Ereignisse: WorkBegin (AWorkCountMax) Work (AWorkCount) Vielleicht funktioniert das ja besser. Frank |
AW: idftp: Transfer Aborted Broken Pipe
|
AW: idftp: Transfer Aborted Broken Pipe
Also vieleicht kann ich einfach nicht richtig rechen, ich mache einen Denkfehler oder es ist ein Bug.
So gehts ja leider nicht immer (erhalte manchmal einfach Minuswerte :)
Delphi-Quellcode:
Aber so geht es dann plötzlich!!??
BytesToTransfer:= IdFTP1.Size(Listbox1.Items[i]);
bytestotransfer:=bytestotransfer div 1024 div 1024; IdFTP1.Get(Listbox1.Items[i], edit1.text+'\'+listbox1.Items[i], true);
Delphi-Quellcode:
BytesToTransfer:= IdFTP1.Size(Listbox1.Items[i])div 1024 div 1024;
ProgressBar1.Max := BytesToTransfer; IdFTP1.Get(Listbox1.Items[i], edit1.text+'\'+listbox1.Items[i], true); Nun ja. Egal. Jetzt kann ich endlich weitermachen :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:07 Uhr. |
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