Webupdater schreiben



  • hallo ich schreibe zur zeit einen webserver(SKIPPSerV) dafür benötige ich aber einen updater (dringend da die beta phase bald anlaufen soll)

    das programm in der übersicht:

    -es soll folgendes können dateien durch neue ersetzen
    alte nicht mehr benötigte dateien löschen und neue hinzufügen

    -so im verzeichnis des updaters befindet sich die release.txt
    auf dem server die update.txt
    mit jeweiligen inhalt in der form verzeichnis\datei #0.0.1

    -die verzeichnistruktur ist auf beidenseiten gleich eine datei die sich auf dem server in update\grafik befindet befindet sich beim server in serverroot\grafik

    -alle dateien sind auf dem server einzeln vorhanden also müssen nicht aus einem archiv entpackt werden

    ----------------------------------------------------------------------------

    so das mit dem herunterladen der update.txt bekomme ich ja hin

    und ich bekomme auch die funktion fürs runterladen(da ist ein anderer für zuständig\ diese erwartet nur als argument den ersten teil der zeile (also den pfad und dateinamen)

    aber wie bekomme ich das mit dem vergelich der dateien hin
    wenn nicht das löschen und hinzufügen von dateien wäre würde ich das ja noch hinbekommen)

    aber so habe ich absolut keinen plan
    ich sitze nun schon seiten wochen daran aber irgendwie keinen plan davon 😞

    hoffe hier hat jemand ne idee dazu?
    oder wenn ich glück habe kann mir ja jemand sogar ne beispiel code geben.

    danke schonmal für die hilfe 😃



  • Skippy schrieb:

    aber wie bekomme ich das mit dem vergelich der dateien hin
    wenn nicht das löschen und hinzufügen von dateien wäre würde ich das ja noch hinbekommen)

    was genau is dein problem dabei?
    -vergleich von dateien
    -löschen von dateien
    -hinzufügen von dateien

    is doch alles recht einfach



  • mein problem ist den datensatz auszulesen und zu verarbeiten,
    das andere selbst bekomme ich hinselbst die funktion fürs updaten einer datei habe
    ich fertig.
    womit ich nicht klarkomme ist die funktion die entscheiden soll was zu tun ist

    Hier die 4möglichkeiten

    die erste zeile steht für den inhalt der update.txt
    die zweite zeile steht für den inhalt der release.txt

    daten\foo.dll #0.0.1
    daten\foo.dll #0.0.1
    (mache nichts)

    daten\foo.dll #0.0.1
    daten\foo.dll #0.0.2
    (lade neue version]

    daten\foo.dll #0.0.1

    (erzeuge neue datei)

    daten\foo.dll #0.0.3
    (lösche datei)

    mein problem ist ich kann die datensätze nicht einfach zeilenweise verleichen da die zeilennummern unterschiedlich sein können.

    ich mus erst vergleichen ob der name in der anderen datei existiert
    wenn ja anschließend vergleichen ob die versionsnummer höher ist



  • Kannste dein Script hier dann mal Posten....

    Also den Code 😛



  • Skippy schrieb:

    ich mus erst vergleichen ob der name in der anderen datei existiert
    wenn ja anschließend vergleichen ob die versionsnummer höher ist

    dann machs doch... 😕



  • wie schon 2 mal gesagt ich bekomme es nicht hin
    da so wie ich es bisher gemacht habe klappt es nicht:

    mein bisheriger ansatz:
    eine zeile aus update.txt lesen und teilen so das man dateiname und version erhält
    so in der release.txt nach der zeile suche die mit dateiname anfängt

    Problem ich kann so nicht testen ob dateiname in der release.txt steht und in der update.txt nicht um dann diese datei zu löschen



  • Dann mach doch den Schritt den du davor getan hast nochmal genau umgekehrt.
    Also die release.txt auslesen und nachsehen, ob die Datei in der update.txt
    auch da ist - wenn nicht -> löschen.



  • dazu ne frage:
    erstmal wie sieht das dann performance mässig aus wenn ich über tausend dateien in der liste habe bzw wie sore ich dann dafür das er weis welche dateien er schon kontrolliert hat


Anmelden zum Antworten