AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

idftp: Transfer Aborted Broken Pipe

Ein Thema von gee21 · begonnen am 6. Apr 2014 · letzter Beitrag vom 7. Apr 2014
Antwort Antwort
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#1

idftp: Transfer Aborted Broken Pipe

  Alt 6. Apr 2014, 22:21
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:
BytesToTransfer:= IdFTP1.Size(Listbox1.Items[i]);
bytestotransfer:=bytestotransfer div 1024;
Weiss jemand wo das Problem entsteht und wie man es lösen kann?



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;
Robert
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: idftp: Transfer Aborted Broken Pipe

  Alt 7. Apr 2014, 08:37
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)
Robert
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider
Online

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: idftp: Transfer Aborted Broken Pipe

  Alt 7. Apr 2014, 09:22
Zum Fehler kann ich nichts sagen.

Ich hole mir die Werte über die Ereignisse:

WorkBegin (AWorkCountMax)
Work (AWorkCount)

Vielleicht funktioniert das ja besser.

Frank
Frank Reim
  Mit Zitat antworten Zitat
borstenei

Registriert seit: 12. Nov 2011
121 Beiträge
 
#4

AW: idftp: Transfer Aborted Broken Pipe

  Alt 7. Apr 2014, 12:58
http://www.delphipraxis.net/178825-t...ad-onwork.html
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: idftp: Transfer Aborted Broken Pipe

  Alt 7. Apr 2014, 13:37
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:
 BytesToTransfer:= IdFTP1.Size(Listbox1.Items[i]);
         bytestotransfer:=bytestotransfer div 1024 div 1024;
         IdFTP1.Get(Listbox1.Items[i], edit1.text+'\'+listbox1.Items[i], true);
Aber so geht es dann plötzlich!!??
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
Robert
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:40 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