- Offizieller Beitrag
Funktionsnamen "_ArrayFileCopy" geändert in "_FileCopyEx" (finde ich passender).
Die Funktion habe ich noch etwas erweitert.
Man muss jetzt zwei Arrays übergeben. Eines mit den Quelldateien und eines (genauso groß) mit den Zielverzeichnissen.
Somit kann man für jede Quelldatei angeben, wohin sie kopiert werden soll. Damit kann man die Funktion auch zum patchen von Programmen verwenden oder als Ersatz für DirCopy.
Um das kopieren ganzer Verzeichnisse (DirCopy) mit meiner Funktion zu erleichtern, habe ich eine Helper-Funktion "_FileCopyEx_CreateArrays" geschrieben, die nach Übergabe des Quellverzeichnisses und des Zielverzeichnisses die für "_FileCopyEx" benötigten Arrays erstellt. Das hört sich jetzt komplizierter an, als es eigentlich ist. Schaut euch einfach das Beispiel an.
Mit Angabe des Flags bei der Funktion kann man folgendes erreichen:
; 0 = kein überschreiben einer existierenden Zieldatei (Standardwert)
; 1 = überschreiben einer existierenden Zieldatei
; 2 = die Datums- und Zeitinformationen der Quelldateien werden auf die Zieldateien kopiert
; 4 = wenn Kopiervorgang beendet, warten bis der Anwender auf [Ok] klickt
; 8 = erstelle Zielverzeichnis, wenn es noch nicht existiert
; 16 = erstelle ein Log-String
; 32 = FileMove statt FileCopy (Quelldateien werden nach erfolgreichen kopieren geloescht)
Nach dem kopieren jeder Datei wird die Dateigröße der Quelldatei mit der Größe der Zieldatei verglichen. Nur wenn diese gleich groß sind, wird der Kopiervorgang als erfolgreich angesehen.
Ansonsten gibt es eine Fehlermeldung.
In dieser Version ist jetzt auch die Progressbar von UEZ wieder dabei, wie ich sie ja auch schon bei "_DownloadWithProgress" verwendet habe. Nochmals: Vielen Dank, UEZ!
Ich habe das Script auch ausführlich kommentiert, sodass man (hoffentlich) nachvollziehen kann, was da im einzelnen passiert.
Neue Version (30.11.2018):
- Wenn man beim Flag das Bit 6 (Wert 32) setzt, wird ein FileMove statt FileCopy ausgeführt. Alle erfolgreich kopierten Quelldateien werden anschließend im Quellverzeichnis gelöscht.