Tipp 1.8 - Datei umbenennen

Wie kann ich eine Datei umbenennen?

Mit dieser Funktion können Sie eine Datei umbenennen. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.

Api-AufrufeVerwendete Win32-Api-Aufrufe und Typen: GetDesktopWindow, SHFileOperation - SHFILEOPSTRUCT

Beispiel:

Option Explicit
 
Public Type SHFILEOPSTRUCT
  hwnd                   As Long
  wFunc                  As Long
  pFrom                  As String
  pTo                    As String
  fFlags                 As Integer
  fAborted               As Long
  hNameMaps              As Long
  sProgress              As String
End Type
 
Public Declare Function GetDesktopWindow _
    Lib "user32" () As Long
Public Declare Function SHFileOperation _
    Lib "shell32.dll" Alias _
    "SHFileOperationA" _
    (lpFileOp As SHFILEOPSTRUCT) As Long
 
Public Function RenameFile( _
                sSourceName As String, _
                sTargetName As String) _
                As Boolean
  '// -----------------------------------------------------
  '// Methode:   | Benennt eine Datei um
  '// -----------------------------------------------------
  '// Parameter: | sSourceName = gültiger Pfad zur Quelld.
  '//            | sTargetName = gültiger Pfad mit Zield.
  '// -----------------------------------------------------
  '// Rückgabe:  | True bei Erfolg
  '// -----------------------------------------------------
  '// Autor:     | Stefan Kulpa
  '//            | EDV Innovation & Consulting - Dormagen
  '// -----------------------------------------------------
 
  Const FO_RENAME             As Long = &H4
  Const FOF_RENAMEONCOLLISION As Long = &H8
  Dim uSHFileOp               As SHFILEOPSTRUCT
  With uSHFileOp
    .hwnd = GetDesktopWindow()
    .wFunc = FO_RENAME
    .pFrom = sSourceName
    .pTo = sTargetName
    .fFlags = FOF_RENAMEONCOLLISION
  End With
  RenameFile = (SHFileOperation(uSHFileOp) = 0)
 
End Function