- Offizieller Beitrag
Ich bin gerade auf ein merkwürdiges Verhalten von DirMove gestossen.
Vorab die Testumgebung:
Quellverzeichnis ist: $sSource = 'd:\Quelle'
Zielverzeichnis ist: $sDest = 'd:\Ziel'
Punkt 1: Führe ich nun ein DirMove($sSource, $sDest, 0) aus, also mit 0 = $FC_NOOVERWRITE, dann passiert gar nichts! Das Verzeichnis "Quelle" wird nicht verschoben, obwohl es nicht im Zielverzeichnis vorhanden ist.
Ein DirMove($sSource, $sDest, 1) mit 1 = $FC_OVERWRITE, verschiebt das Verzeichnis hingegen in das Zielverzeichnis.
Punkt 2: Aber, und jetzt wird es total kurios, führe ich DirMove($sSource, $sDest, 1) nochmal aus (also mit bereits existierendem Verzeichnis "Quelle" im Zielverzeichnis, so werden nicht die Dateien in "D:\Ziel\Quelle" überschrieben, sondern das Quelle-Verzeichnis wird nach "D:\Ziel\Quelle" verschoben. Es existiert dann "D:\Ziel\Quelle\Quelle" mit den Dateien aus "D:\Quelle".
Ok, in der Hilfe zu DIrMove steht Punkt 2 so geschrieben: "If the destination already exists and the overwrite flag is specified then the source directory will be moved inside the destination."
Aber das ist doch völlig absurd! Ich will doch lediglich, dass das Verzeichnis "Quelle" nach "Ziel" verschoben wird und dabei ein bereits vorhandenes "Quelle" überschrieben wird.
Muss ich dazu wirklich alle Dateien einzeln verschieben (mit FileMove)?
Oder habe ich etwas übersehen?