DirCopy

Kopiert einen Ordner mit all seinen Unterordnern und Dateien (ähnlich wie xcopy) oder den gesamten Inhalt einer Archivdatei (z.B. ZIP).

DirCopy Quelle, Ziel , Überschreiben

Parameter

Quelle

Typ: Zeichenkette

Name des Quellverzeichnisses (ohne umgekehrten Schrägstrich am Ende). Wenn kein absoluter Pfad angegeben ist, wird das Verzeichnis im A_WorkingDir-Verzeichnis vermutet. Zum Beispiel: C:\Mein Ordner

Sofern vom Betriebssystem unterstützt, kann Quelle auch der Pfad einer Archivdatei sein; in diesem Fall wird ihr Inhalt in das Zielverzeichnis kopiert. ZIP-Dateien werden immer unterstützt. TAR-Dateien benötigen mindestens Windows 10 (1803) Build 17063. RAR, 7z, gz und andere benötigen mindestens Windows 11 23H2 (das libarchive verwendet, wo alle unterstützten Formate aufgelistet sind).

Ziel

Typ: Zeichenkette

Name des Zielverzeichnisses (ohne umgekehrten Schrägstrich am Ende). Wenn kein absoluter Pfad angegeben ist, wird das Verzeichnis im A_WorkingDir-Verzeichnis vermutet. Zum Beispiel: C:\Kopie von Mein Ordner

Überschreiben

Typ: Integer

Wenn weggelassen, wird standardmäßig 0 verwendet. Andernfalls geben Sie eine der folgenden Zahlen an, um festzulegen, ob bereits vorhandene Dateien überschrieben werden dürfen:

0: Vorhandene Dateien werden nicht überschrieben. Die Operation wird fehlschlagen und keinen Effekt haben, wenn Ziel bereits als Datei oder Verzeichnis existiert.

1: Vorhandene Dateien werden überschrieben. Allerdings werden Dateien oder Unterordner innerhalb von Ziel, die kein Gegenstück in Quelle haben, nicht gelöscht.

Andere Werte sind für zukünftige Zwecke reserviert.

Fehlerbehandlung

Es wird eine Ausnahme ausgelöst, wenn ein Fehler auftritt.

Enthält das Quellverzeichnis eine gespeicherte Webseite, die aus Seitenname.htm und dem zugehörigen Verzeichnis Seitenname_Dateien besteht, kann eine Ausnahme ausgelöst werden, auch wenn der Kopiervorgang erfolgreich war.

Bemerkungen

Wenn die Verzeichnisstruktur des Ziels nicht vorhanden ist, wird sie automatisch erstellt, falls möglich.

Da die Operation in der Lage ist, einen Ordner mit all seinen Unterordnern und Dateien rekursiv zu kopieren, ist das Ergebnis beim Kopieren eines Ordners auf ein Ziel irgendwo in sich selbst nicht definiert. Um das zu umgehen, kopieren Sie den Ordner zuerst irgendwo anders hin und verwenden Sie danach DirMove, um den kopierten Ordner an den gewünschten Ort zu verschieben.

DirCopy kopiert nur einen einzigen Ordner. Um stattdessen den kompletten Inhalt eines Ordners (all seine Dateien und Unterordner) zu kopieren, verwenden Sie das Beispiel ganz am Ende der FileCopy-Seite.

DirMove, FileCopy, FileMove, FileDelete, Datei-Schleife, DirSelect, SplitPath

Beispiele

Kopiert ein Verzeichnis in ein anderes Verzeichnis.

DirCopy "C:\Mein Ordner", "C:\Kopie von Mein Ordner"

Fordert den Benutzer auf, einen Ordner zu kopieren.

QuelleOrdner := DirSelect(, 3, "Wählen Sie den Ordner aus, der kopiert werden soll")
if QuelleOrdner = ""
    return
; Andernfalls fortfahren.
ZielOrdner := DirSelect(, 3, "Wählen Sie den Ordner aus, der die Kopie des Ordners enthalten soll.")
if ZielOrdner = ""
    return
; Andernfalls fortfahren.
Ergebnis := MsgBox("Eine Kopie des Ordners '" QuelleOrdner "' wird in '" ZielOrdner "' erstellt. Weiter?",, 4)
if Ergebnis = "No"
    return
SplitPath QuelleOrdner, &QuelleOrdnerName  ; Nur den Ordnernamen aus dem vollständigen Pfad extrahieren.
try
    DirCopy QuelleOrdner, ZielOrdner "\" QuelleOrdnerName
catch
    MsgBox "Der Ordner konnte nicht kopiert werden, vermutlich weil in '" ZielOrdner "' bereits ein Ordner mit diesem Namen existiert."
return