AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Download mit IdFtp.get erzeugt 5byte-Dateien
Thema durchsuchen
Ansicht
Themen-Optionen

Download mit IdFtp.get erzeugt 5byte-Dateien

Ein Thema von livemedia · begonnen am 1. Jun 2009 · letzter Beitrag vom 4. Jun 2009
 
livemedia

Registriert seit: 14. Mär 2006
8 Beiträge
 
Delphi 2009 Professional
 
#1

Download mit IdFtp.get erzeugt 5byte-Dateien

  Alt 1. Jun 2009, 01:16
Hallo

Ich Arbeite derzeit mit Delphi2009 und bringe ein altes Project von mir auf den aktuellsten Stand. Dabei lade ich von diversen FTP-Servern jeweils ein Verzeichnis herunter und lege die Dateien in einer Struktur auf der Festplatte zur weiteren Bearbeitung aus.

Das hat soweit auch immer gut geklappt. Nun hab ich schon mitgekommen das die Erkennung der Dateinamen nicht mehr so ist wie bei Delphi2007 - aber das hab ich hinbekommen. Mein Programm liest nun wieder korrekt die Dateien in dem ftp-Verzeichnis ein und zeigt in der Listbox die Namen und die Dateigröße korrekt an. Nach einer Prüfung ob die Datei schon auf der Platte ist startet der Download. Die erzeugten Dateien sind aber immer nur 5 Byre groß.

Ein normaler Zugriff mit beliebigen FTP-Programmen geht ohne Probleme.

Hier ein Auszug aus dem Script

Delphi-Quellcode:
 procedure TForm1.ButtonClick(Sender: TObject);
 var i : integer;
      count : integer;
      name : string;
      basedir : string; // Verzeichnis auf der Festplatte
      currentdir : string; // Ordner auf dem Server
      ftplist : TIdFtpListItems;
      ftpfile : TFileStream;

begin
 if IdFTP1.connected = false then
  begin
    IdFTP1.Username := 'xxxxxx';
    IdFTP1.Password := 'xxxxxx';
    IdFTP1.Host := '123.123.123.123';
    IdFTP1.Passive := TRUE;
    basedir := 'z:\projekt\eingang-xxx\';
    currentdir := 'subdir123';

    IdFTP1.Connect;
    IdFTP1.ChangeDir(currentdir);
    IdFTP1.List;
    ftplist := IdFTP1.DirectoryListing;

    count := ftplist.Count;
    for i := 1 to Count do
      begin
        name := ftplist[i-1].FileName;
        if ftplist[i-1].ItemType = ditFile then
        begin
           Listbox1.items.add(name+' ('+IntToStr(ftplist[i-1].Size)+')');
           if FileExists(basedir+currentdir+'\'+name) = FALSE then
              IdFTP1.Get(name,basedir+currentdir+'\'+name);

           // ALTERNATIV habe ich das auch schon versucht mit dem gleichen Ergebnis.

           // ftpfile := TFileStream.Create(basedir+currentdir+'\'+name, fmCreate);
           // try
           // IdFTP1.Get(name,ftpfile);
           // finally
           // FreeAndNil(ftpfile);
           // end;


        end;
      end;
 
    IdFTP1.Quit;
    iDFTP1.Disconnect;
  end;
end;
  Mit Zitat antworten Zitat
 


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 18:00 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