MoveFile(src$, dst$[, t])
MoveFile(src$, dst$[, func, userdata])
src$
angegebene Datei oder
Verzeichnis in die in dst$
angegebene Datei oder Verzeichnis.
Beachten Sie, dass dst$
nicht existieren darf oder MoveFile()
wird fehlschlagen. Außerdem darf src$
nicht das Stammverzeichnis
eines Laufwerkes sein, da dieses offensichtlich nirgendwohin verschoben
werden kann.
Das Verschieben von Dateien (oder Verzeichnissen) auf dem gleichen
Laufwerk ist wirklich schnell und braucht fast keine Zeit. Beim
Verschieben von Dateien und Verzeichnissen von einem Laufwerk
auf ein anderes muss MoveFile()
zuerst die Dateien kopieren
und in einem zweiten Schritt vom Original-Laufwerk löschen.
Dieser Vorgang ist viel langsamer als das Verschieben auf dem
gleichen Laufwerk. Deshalb können Sie eine Callback-Funktion
angeben, die den Fortschritt dieser Operation überwacht.
MoveFile()
unterstützt mehrere optionale Argumente. Vor Hollywood 9.0
mussten diese als optionale Parameter übergeben werden (siehe oben).
Seit Hollywood 9.0 wird jedoch empfohlen, die neue Syntax zu
verwenden, die ein einzelnes optionales Tabellenargument hat,
mit dem ein oder mehrere optionale Argumente an MoveFile()
übergeben
werden können.
Die folgenden Tabellenfelder werden von diesem Befehl verstanden:
Force:
True
gesetzt ist, werden schreib- oder löschgeschützte
Dateien automatisch gelöscht, ohne vorher die Callback-Funktion
abzufragen. Beachten Sie, dass MoveFile()
alle schreib- oder
löschgeschützten Dateien überspringt, anstatt sie zu löschen,
wenn es keine Callback-Funktion gibt und Force
auf False
(Voreinstellung)
gesetzt ist. Beachten Sie auch, dass Force
nur verwendet wird, wenn
MoveFile()
tatsächlich Dateien löschen muss, d.h. wenn Dateien
von einem Laufwerk auf ein anderes verschoben werden. Das Verschieben
von Dateien auf demselben Laufwerk erfordert kein Löschen. Die
Voreinstellung ist False
. (V9.0)
BufferSize:
BufferSize
nur verwendet wird, wenn MoveFile()
tatsächlich Dateien kopieren
muss, d.h. wenn Dateien von einem Laufwerk auf ein anderes verschoben
werden. Das Verschieben von Dateien auf demselben Laufwerk beinhaltet
kein Kopieren. (V9.0)
FailOnError:
MoveFile()
fehl, wenn eine Datei oder ein
Verzeichnis nicht kopiert oder gelöscht werden kann. Sie können
dieses Verhalten ändern, indem Sie FailOnError
auf False
setzen. In
diesem Fall schlägt MoveFile()
nicht fehl, wenn eine Datei oder
ein Verzeichnis nicht kopiert oder gelöscht werden kann. Stattdessen
wird Ihre Callback-Funktion, falls vorhanden, mit den Meldungen
#MOVEFILE_COPYFAILED
und #MOVEFILE_DELETEFAILED
benachrichtigt
und Ihre Callback-Funktion muss MoveFile()
mitteilen, wie es
weitergehen soll (Wiederholen, Fortfahren, Abbrechen). Siehe
unten, um zu erfahren, wie man eine Callback-Funktion für MoveFile()
einrichtet. Beachten Sie, dass FailOnError
nur verwendet wird,
wenn MoveFile()
tatsächlich Dateien kopieren und löschen muss,
d.h. wenn Dateien von einem Laufwerk auf ein anderes verschoben
werden. Das Verschieben von Dateien auf demselben Laufwerk erfordert
kein Kopieren oder Löschen. FailOnError
ist voreingestellt auf
True
. (V9.0)
Async:
True
gesetzt ist, arbeitet MoveFile()
im asynchronen
Modus. Das bedeutet, dass der Befehl sofort zurückkehrt und
Ihnen ein asynchroner Operationshandler übergibt. Sie können
dann diesen asynchroner Operationshandler verwenden, um den
Vorgang abzuschließen, indem Sie wiederholt ContinueAsyncOperation()
aufrufen, bis True
zurückgegeben wird. Dies ist sehr nützlich,
z.B. für die Anzeige eines Fortschrittsbalken oder ähnlichem. Indem
Sie MoveFile()
in den asynchronen Modus versetzen, ist es Ihrem
Skript leicht möglich, während der Verarbeitung des Vorgangs
etwas anderes zu tun. Siehe ContinueAsyncOperation für Details.
Voreingestellt ist False
. (V9.0)
Adapter:
UserTags:
Callback:
MoveFile()
ruft sie beispielsweise von Zeit zu Zeit auf, damit
Sie einen Fortschrittsbalken aktualisieren können. Sie wird
auch aufgerufen, wenn eine Datei löschgeschützt ist, um Sie
zu fragen, wie es weitergehen soll. Wenn keine Callback-Funktion
vorhanden ist, überspringt MoveFile()
löschgeschützte Dateien
stillschweigend. Die Callback-Funktion erhält ein Argument,
eine Tabelle, die weitere Informationen enthält.
Beachten Sie, dass die Callback-Funktion nur aufgerufen wird, wenn Dateien zwischen Laufwerken verschoben werden. Das Verschieben von Dateien auf demselben Laufwerk kann sofort erfolgen und führt nicht zu einem Aufruf der Callback-Funktion. Beachten Sie auch, dass Dateien mit Löschschutz nicht gelöscht werden, sondern nur an den neuen Speicherort kopiert werden, ohne die alte Datei zu löschen.
Die folgenden Callback-Typen sind verfügbar:
#MOVEFILE_UNPROTECT:
#MOVEFILE_UNPROTECT
wird aufgerufen,
wenn MoveFile()
eine löschgeschützte Datei löschen muss. Die
Parametertabelle für diesen Callback-Typ enthält die folgenden
Felder:
Action:
#MOVEFILE_UNPROTECT
File:
UserData:
UserData
übergeben
haben (siehe unten).
Diese Callback-Funktion muss True
zurückgeben, wenn es in Ordnung
ist, die Datei auf ungeschützt zu setzen, oder False
, wenn
sie nicht ungeschützt sein soll. Wenn Sie -1 zurückgeben, wird
der Verschiebevorgang komplett abgebrochen.
#MOVEFILE_DELETE:
#MOVEFILE_DELETE
sollte normalerweise False
zurückgeben. Wenn True
zurückgegeben
wird, bricht MoveFile()
den gesamten Vorgang ab.
Action:
#MOVEFILE_DELETE
File:
UserData:
UserData
angegeben
haben (siehe unten).
#MOVEFILE_COPY:
MoveFile()
Dateien
kopiert. Die Callback-Funktion vom Typ #MOVEFILE_COPY
sollte
normalerweise False
zurückgeben. Wenn True
zurückgegeben wird,
bricht MoveFile()
den gesamten Vorgang ab.
Action:
#MOVEFILE_COPY
Source:
Destination:
Copied:
Filesize:
UserData:
UserData
angegeben
haben (siehe unten).
#MOVEFILE_DELETEFAILED:
FailOnError
auf False
gesetzt wurde (siehe oben). In diesem Fall wird die
Callback-Funktion vom Typ #MOVEFILE_DELETEFAILED
immer dann
aufgerufen, wenn ein Löschvorgang fehlgeschlagen ist. Es muss
True
zurückgegeben werden, um den gesamten Vorgang abzubrechen,
False
, um fortzufahren, obwohl ein Fehler aufgetreten ist, oder
-1, um den gerade fehlgeschlagenen Löschvorgang erneut zu versuchen.
Die folgenden Felder werden im Tabellenparameter gesetzt, der
an Ihre Callback-Funktion übergeben wird:
Action:
#MOVEFILE_DELETEFAILED
File:
UserData:
UserData
angegeben
haben (siehe unten).
(V9.0)
#MOVEFILE_COPYFAILED:
FailOnError
auf False
gesetzt wurde (siehe oben). In diesem Fall wird die
Callback-Funktion vom Typ #MOVEFILE_COPYFAILED
immer dann aufgerufen,
wenn ein Kopiervorgang fehlgeschlagen ist. Es muss True
zurückgegeben
werden, um den gesamten Vorgang abzubrechen, False
, um fortzufahren,
obwohl ein Fehler aufgetreten ist, oder -1, um den gerade fehlgeschlagenen
Kopiervorgang erneut zu versuchen. Die folgenden Felder werden
im Tabellenparameter gesetzt, der an Ihre Callback-Funktion
übergeben wird:
Action:
#MOVEFILE_COPYFAILED
Source:
Destination:
UserData:
UserData
angegeben
haben (siehe unten).
(V9.0)
UserData:
UserData
können Sie ganz einfach Daten
an Ihre Callback-Funktion übergeben. Sie können in UserData
einen beliebigen Wert angeben. Als Benutzerdaten können Zahlen,
Zeichenketten, Tabellen und sogar Funktionen übergeben werden.
Ihre Callback-Funktion erhält diese Daten im Feld UserData
in der ihm übergebenen Tabelle.
Siehe auch CopyFile(), DeleteFile(), Rename() und Exists().
MoveFile("image.png", "images/image.png")Verschiebt die Datei "image.png" unter Beibehaltung von ihrem Namens in das Unterverzeichnis "images".