FAQ 0073: Wie kann ich eine Datei umbenennen?
von Helge Rex
Frage
Wie kann ich eine Datei oder ein Verzeichnis umbenennen oder verschieben?
Die hier gezeigten Quelltexte stammen von Helge Rex.
VB-Funktionen
Visual Basic stellt die Methode Name() zur Verfügung:
Private Sub TestSub() Dim strOldFile As String Dim strNewFile As String strOldFile = Environ$("WINDIR") & "\setuplog.txt" strNewFile = Environ$("WINDIR") & "\newsetuplog.txt" Name strOldFile As strNewFile End Sub
API-Funktionen
Visual Basic selbst leitet die Parameter der Methode Name() an die API-Funktion MoveFile weiter:
Private Declare Function MoveFile Lib "kernel32.dll" _ Alias "MoveFileA" ( _ ByVal lpExistingFileName As String, _ ByVal lpNewFileName As String) As Long Private Sub TestSub() Dim strOldFile As String Dim strNewFile As String strOldFile = Environ$("WINDIR") & "\setuplog.txt" strNewFile = Environ$("WINDIR") & "\newsetuplog.txt" MoveFile strOldFile, strNewFile End Sub
MoveFile ist nicht in der Lage, Dateien über Partitionsgrenzen hinweg zu verschieben. Wer diese Funktionalität benötigt, der muß sich mit der API-Funktion MoveFileEx beschäftigen. Diese API-Funktion bietet darüber hinaus auch die Möglichkeit, die Datei beim nächsten Systemstart zu kopieren. Das ist natürlich für eigene Setup-Tools ein idealer Ansatz.
WSH-Funktionen
Das FSO stellt die Methode MoveFile() zur Verfügung.
Private Sub TestSub() Dim objFSO As Object Dim strOldFile As String Dim strNewFile As String strOldFile = Environ$("WINDIR") & "\setuplog.txt" strNewFile = Environ$("WINDIR") & "\newsetuplog.txt" Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.MoveFile strOldFile, strNewFile Set objFSO = Nothing End Sub
Ihre Meinung
Falls Sie Fragen zu dieser FAQ haben, Ihre Erfahrung mit anderen Nutzern austauschen möchten oder auf eine Ergänzung hinweisen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.