Einzelnen Beitrag anzeigen

copris

Registriert seit: 21. Apr 2010
3 Beiträge
 
Delphi 2010 Enterprise
 
#1

Indy 10 Datei-Download Datum beibehalten

  Alt 21. Apr 2010, 17:39
Hallo zusammen

Gibt es eine Einstellung, mit der das Datei-Datum beim Download beibehalten wird, oder muss ich das nachträglich wieder über die Attribute ändern. Die Datei wird nur gedownloadet, wenn das Datum dem Jahr und Monat entspricht, das der Benutzer vorher ausgewählt hat.

Der Download ist gekürzt so
Delphi-Quellcode:
    
..
  i := 3600000; // 1 Stunde
  IdFTP.ConnectTimeout := i;
  IdFTP.ReadTimeout := i;
  IdFTP.TransferTimeout := i;
  IdFTP.Connect();
..
IdFTP.List(lbList.Items, FTPString, false);
..
  lblTotal.Caption := inttostr(IdFTP.ListResult.Count-1) + ' Dateien eingelesen';
  for i := IdFTP.ListResult.Count-1 downto 0 do
    begin
      dat := IdFTP.FileDate(IDFTP.ListResult[i], true);
      if ( meYear.Text + format('%.02d', [m]) ) =
         ( inttostr(yearOf(dat)) + format('%.02d', [monthOf(dat)]) ) then
        begin
          if LocpathZ.Text = 'then zvz := LocPath.Text
                                else zvz := LocPath.Text +'\'+ inttostr(yearOf(dat))
                                     +'\'+ format('%.02d', [monthOf(dat)]);
          ForceDirectories(zvz +'\'+ FTPPath.Text);
          IdFTP.Get('/'+IDFTP.ListResult[i], zvz+'/'+IDFTP.ListResult[i], true, true);
          end;
      lblCount.Caption := inttostr(i)+' Dateien , '+IDFTP.ListResult[i] +' '+ datetostr(dat);
      lbList.Items.Delete(i);
      end;
IdFTP.Disconnect();
end;
..
Zusätzlich werden alle Dateien auf dem FTP-Server gelöscht, die älter als 2 Monate sind und auf dem Ziel bereits vorhanden sind.
Da auf dem FTP-Server ca. 10'000 XML-Dateien (1-5 kB) abgerufen werden, dauert das mitunter sehr lange.
2'300 Dateien, gesamt 4MB dauert etwa 35 Minuten. Gibt es da eine bessere Lösung?

2. Das mit dem Passiv-Mode ist mir nicht ganz klar. Wann ist dieser zu bevorzugen?

3. Gibt es eine Möglichkeit das IdFTP.List beim Einlesen nach Datum zu filtern?


Also schon mal besten Dank für eure Antworten.
  Mit Zitat antworten Zitat