-Projekthilfe-, verschiedene Fragen

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von hal2000.

    -Projekthilfe-, verschiedene Fragen

    Hallo :)

    Um es gleich vorweg zu sagen:

    Ich hatte in erinnerung, das es das Thema schon x mal gab.

    Ich mich jedoch mit Forensuche und Google rumgequält und nix brauchbares gefunden.

    Und zwar soll Mein Programm verschiedene Dateien von einem Webspace herunterladen.

    Aber nur, wenn diese auf dem PC noch nicht vorhanden sind.

    Die Daten sollen in das /Programmverzeichnis/Data/ heruntergeladen werden.

    Also ich stelle mir das so vor:

    Auf meinem Webspace liegt der Ordner Server. In diesem Ordner gibt es verschiedene Unterordner, z.B. Programmieren.

    In diesem Ordner gibt es eine Datei, z.B. ProG.25.März.2009.doc.

    Also: h.ttp://meinwebspace.de/server/programmieren/Prog.25.März.2009.doc

    Wenn im Programmverzeichnis Data der Unterordner Programmieren noch nicht vorhanden ist, soll er erstellt werden....das weiß ich wie es geht.

    Aber wie überprüfe ich, ob der Offline-Ordner Synchron mit dem Webspace-Ordner ist ?

    Danke schonmal im Vorraus, Skybird ;)
    //Kommentar
    Hi..
    du könntest die My.Computer.FileSystem.CopyDirectory()-Methode verwenden. In einer der Überladungen kannst du den Parameter "Overwrite" angeben (welcher standardmäßig False ist). Damit kopierst du die gesamte Verzeichnisstruktur und überspringst automatisch existierende Dateien.

    gruß
    hal2000
    Gruß
    hal2000
    Ohne Herunterladen dürfte der Vergleich in der Tat etwas schwierig werden. Du könntest auf dem Server nur die geänderten Dateien zur Verfügung stellen, sodass der Client einfach alles runterlädt, was der Server "freigegeben" hat. Die Sortierung muss dann aber auf dem Server erfolgen (denn der Client braucht alle Dateien, wenn er einen Abgleich machen soll).

    gruß
    hal2000
    Gruß
    hal2000
    Aber wenn ich nur die veränderten Dateien bereitstelle, dann hat der User, der auch die vorherigen Dateien nicht hat, den Zonk gezogen :D

    /e : 2. Frage:

    Wie lade ich die Dateien so herunter, dass sie im Programmunterordner Data landen :) ?
    //Kommentar
    Zu 1:
    Dann stelle auf dem Server eine Liste aller Dateien inkl. Änderungsdatum zur Verfügung, die der Client herunterlädt und mit seinem Dateibestand abgleicht. Dann kann der Client eine Downloadliste erstellen und sich die entsprechenden Dateien laden.

    Zu 2:
    Du gibst als Downloadziel den Ordner "Data" an.

    gruß
    hal2000
    Gruß
    hal2000
    Also ich greife hier mal auf die Idee von Hal2000 zurück, die Sache mit den Textdateien.

    Ich erstelle Also auf meinem Server eine Textdatei, in der alle verfügbaren Dokumente auf dem Server aufgelistet sind.

    Auf dem Client legt mein Programm eine Textdatei der vorhandenen Dokumente an.

    Also So z.B. :

    "Server-Datei:" schrieb:



    "Client-Datei:" schrieb:

    unterordner1/Datei1.doc
    unterordner2/Datei2.doc


    Wie vergleiche ich die 2 Textdateien am besten, und lade die fehlenden herunter ?
    //Kommentar
    Du brauchst Dateiname und Änderungsdatum in dieser Datei. Der Pfad ist für den späteren Down- / Upload hilfreich.

    Nun liest du beide Dateien zeilenweise in Array(-Lists) ein und vergleichst sie gegeneinander auf fehlende / geänderte Einträge. Dazu musst du eine Vergleichsklasse schreiben, welche das Interface IComparer implementiert. Diesen IComparer kannst du dann zum Abgleich verwenden. Die Änderungen speicherst du in einem weiteren Array und interpretierst sie entsprechend mit den Aktionen Download, Upload, Überschreiben, Löschen, Neu erstellen, etc.. Wenn du dir einmal Microsoft SyncToy anschaust, wirst du bemerken, dass das Programm in den zu vergleichenden Verzeichnissen (versteckte) Dateien ablegt, die unter anderem zur Änderungsnachverfolgung dienen.

    gruß
    hal2000
    Gruß
    hal2000
    Sehr schöne Antwort, danke dir :)

    Wie downloade ich dann die Dateien, die in dieser Datei stehen ?
    Also ich lese die fertige Datei komplett aus und Arbeite dann mit jeder einzelnen Zeile als DL-Pfad.

    In der Datei steht also:
    http://webspace.de/Datei1.doc
    webspace.de/Datei2.doc
    webspace.de/Datei3.doc


    ,aber wie downloade ich jedes File in dieser Datei ? Ist bestimmt Trivial, nur steh ich grad auf dem Schlauch ^^
    //Kommentar