Updatefunktion aber wie?



  • Hallo
    Ich möchte in meinem Prog eine Updatefunktion einbauen.
    Es soll so funktionieren das wenn auf den Buttom Update geklickt wird eine verbindung zu nem FTP hergestellt wird und dort erst einmal ein File "version.txt" ausgelesen wird was auch in dem Ordner der Anwendung liegt. Wenn nun die Versionsangaben in dem File auf der lokalen Platte gleich sind wie die auf dem FTP soll eine Masseg kommen das kein Update notwendig ist und wenn die version auf dem FTP höher ist soll ein Update durchgeführt werden sprich eine setup.exe downgeloadet werden.
    Jetzt is nur das Prob das ich damit noch nie zu tun hatte und daher auch nicht so recht weis wie ich das anfange.
    Ich hoffe ihr könnt mir helfen.

    MfG Nico



  • Schau mal in der MSDN: (In der FAQ hier ist auch was darüber)
    CInternetSession
    CFtpConnection



  • Dürfte sich erledigt haben, gell? 😉

    MP



  • Sorry aber FAQ hatte ich schon geschaut und nix für mein prob gefunden. MSDN hilft mir leider nich so viel bin halt noch ziemlich neu.



  • Kann mir wirklich keiner helfen?



  • Hallo,
    ich würde das selbe auch gerne machen.
    Hat nicht jemand ein bißchen Beispielcode für uns.
    Speziell der FTP Zugriff und das ich irgentwie dann die Datei öffnen
    und lesen kann



  • #include <afxinet.h>
    
    #define FTP  "ftp.bigwilli.de"  //url des ftp servers
    #define USER "bigwilli"         //username zum login
    #define PASS "geheim"           //passwort  
    
    CString m_status;
    
    CInternetSession sess("Verbindung zur FTP-Server");
    CFtpConnection *pFTP = NULL;
    
    pFTP = sess.GetFtpConnection(FTP,USER,PASS);
    if(pFTP==NULL)
    {
        m_status = "Fehler: Keine Verbindung zu FTP-Server möglich";
        UpdateData(FALSE);
        exit(1);
    }
    // Ablageverzeichnis auf FTP-Server setzen.
    if(!pFTP->SetCurrentDirectory("../version/"))
    {
        m_status = "Fehler beim setzen des Empfangsverzeichnisses"; //status
        UpdateData(FALSE);
        exit(1);
    }
    // Jetzt Datei wieder Downloaden
    if(!pFTP->GetFile("version.txt","version.txt"))
    {
        m_status = "Fehler beim Download";
        UpdateData(FALSE);
        exit(1);
    }
    
    m_status = "Aktuelle File eingelesen";
    UpdateData(FALSE);
    
    pFTP->Close();
    sess.Close();
    

    So damit zieht du ne Datei vom FTP..
    Die kannst auslesen, und nachschauen ob die Version gleich ist...
    Darauf reagierst du dann einfach.

    Is doch easy 🙂

    [ Dieser Beitrag wurde am 10.10.2002 um 14:11 Uhr von C-O-M-M-A-N-D-E-R editiert. ]



  • PERFEKT !
    Danke



  • 2 Sachen:

    if(pFTP==NULL) ????
    GetFtpConnection wirft ne Exception -> wird also nie ausgeführt

    statt
    pFTP->Close();
    lieber
    delete pFTP;
    schreiben. Sonst wird der Speicher nicht freigegeben.

    Achso:
    Und wenn du nur ne Datei willst und dein Ftp kein User/Pass braucht
    dann geht es einfacher mit CInternetSession::OpenURL

    [ Dieser Beitrag wurde am 11.10.2002 um 10:48 Uhr von Nemesyzz editiert. ]


Anmelden zum Antworten