Kopieren und Prüfen mehrerer Dateien

  • Hallo,

    ich hab mal wieder eine Frage:

    Versuche gerade mehrere Dateien von einem Ordner in einen anderen zu kopieren, (funktioniert) und danach abzufragen ob der Kopiervorgang erfolgreich war.

    Also erst mit FileOpenDialog die Dateien zum kopieren auswählen, dann mit FileCopy in einen Ordner zu kopieren und nun komm ich nicht weiter.

    Wie kann ich den FileExist bauen, damit dieser die Dateien im Array, aus dem FileOpenDialog, mit den kopierten Dateien vergleicht??????

    Nun müsste ich wohl mit StringSplit weitermachen, aber hier stoße ich an meine Grenzen, ich kapiers nicht.

    Spoiler anzeigen

    Vielen Dank!

    Ja, ich weiß es auch, das Problem ist einen halben Meter vor dem Bildschirm. 8o

  • Frag doch einfach den Rückgabewert von FileCopy ab. Der sagt Dir ob erfolgreich oder nicht.

  • water

    Vielen Dank für den Tip! Das sollte dann wohl so aussehen:

    Spoiler anzeigen
    Code
    FileWrite("C:\KopErgeb.txt", FileCopy($TargetFcnTest01 & $aFcn[$i], $Verz_Fcn_Sich & "\" & $aFcn[$i]))

    aber da kommt dann bei jedem erfolgreichem kopiervorgang eine 1 dazu!

    Ich würde das Ergebnis lieber sofort in eine MsgBox ausgeben.

    Folgender Hintergrund:

    Wir kopieren (wenns fertig ist) Dateien von einem Server auf 3 andere Server. Wobei 1 Server in der nähe von Plauen steht, der andere in Frankreich.

    Anders gesagt, 1 Datei sind min. 3 Kopien. Wenn ich also filten könnte (bei Fehlschlag) Datei wurde auf Server x nicht kopiert, könnte ich mir im Anschluss viel arbeit ersparen.

    Ja, ich weiß es auch, das Problem ist einen halben Meter vor dem Bildschirm. 8o

  • Ich würde Erfolg/Misserfolg in die Logdatei schreiben. So hast Du eine VOLLSTÄNDIGE Übersicht, was passiert ist.

    Um den User zu informieren, wie weit der Kopiervorgang fertiggestellt ist, bieten sich z.B. die Progress* Befehle an.

    Hier mein Beispielcode:

  • Kopierfortschrtt könnte z.B. so aussehen:

  • @ water

    vielen Dank! das wars, damit bekomme ich genau was ich wollte! :klatschen:

    Und wenn ein Fehler kommt, erscheint zusätzlich noch eine MsgBox ;)

    @ autoiter,

    die UDF _FileCopyEx ist die nicht eher für Verzeichnisse als für Dateien gebaut?

    So liest es sich jedenfalls in der Beschreibung!

    Aber Danke für deinen Hinweis! Werd ich bestimmt auch noch mal brauchen :rock:

    Ja, ich weiß es auch, das Problem ist einen halben Meter vor dem Bildschirm. 8o

    Einmal editiert, zuletzt von Mr-Ferret (23. August 2019 um 14:18)

  • Noch ein Hinweis. Die Logmeldungen enthalten nach Datum/Uhrzeit eine Kennung für die "Schwere" der Meldung:

    I - Information. Es hat alles geklappt (z.B. Datei wurde kopiert).

    W - Warning. Eine Situation, die vom Script behandelt wurde. Die Verarbeitung läuft normal weiter (z.B. Datei wurde kopiert aber eine gleichnamige Datei musste dabei überschrieben werden).

    E - Error. Es trat ein Fehler auf, der vom Skript behandelt werden konnte. Die Verarbeitung wird beendet (z.B. MsgBox ausgeben und dann Script beenden)

    S- Severe. Es trat ein sehr ernster Fehler auf. Diese Meldung wird gerade noch geschrieben, danach stürzt das Skript ab.

  • Bearbeite das Thema des Threads bitte noch und setze es auf "Erledigt".

    Nur der Vollständigkeit halber:

    Nein, lies die Beschreibung noch einmal - nur wenige Sekunden länger ;)
    Die UDF kann beides und kann auch Fehler melden..

    Grüße autoiter

  • @ water

    ja, das hatte ich bereits gesehen, ich habs noch ein wenig, na ja, sagen wir verschönert ^^

    @ autoiter,

    ich werds mir noch mal reinziehen, testen.

    Vielen Dank auch alle!!!!

    Ja, ich weiß es auch, das Problem ist einen halben Meter vor dem Bildschirm. 8o