Die Community zu .NET und Classic VB.
Menü

FAQ 0073: Wie kann ich eine Datei umbenennen?

 von 

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

Listing 1: Datei oder Verzeichnis mit VB umbenennen oder verschieben

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

Listing 2: Datei oder Verzeichnis mit API umbenennen oder verschieben

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

Listing 3: Datei oder Verzeichnis mit FSO umbenennen oder verschieben

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.