Tipp 1.12 - Dateien verschieben
Wie kann ich Dateien mit den Flying Windows verschieben?
Mit dieser Funktion können Sie Dateien mit den Flying Windows verschieben. 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.
Verwendete Win32-Api-Aufrufe und Typen: 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 SHFileOperation _ Lib "shell32.dll" Alias _ "SHFileOperationA" _ (lpFileOp As SHFILEOPSTRUCT) _ As Long Public Function MoveFiles( _ sFileArray() As String, _ sDestination As String, _ Optional bDoSilent As Boolean = True) _ As Long '// ----------------------------------------------------- '// Methode: | Verschiebt eine Anzahl Dateien; '// | Aufruf des "flying windows"-Dialogs '// | benötigt VBA6+ wegen Join-Funktion '// ----------------------------------------------------- '// Parameter: | asFiles = Datenfeld (Array) mit '// | gültigen Pfaden '// | sTarget = Zielordner '// ----------------------------------------------------- '// Rückgabe: | True bei Erfolg '// ----------------------------------------------------- '// Autor: | Stefan Kulpa '// | EDV Innovation & Consulting - Dormagen '// ----------------------------------------------------- Const FOF_NOCONFIRMATION As Long = &H10 Const FOF_NOCONFIRMMKDIR As Long = &H200 Const FOF_SILENT As Long = &H4 Const FO_MOVE As Long = &H1 Dim uSHFileOp As SHFILEOPSTRUCT Dim sFiles As String sFiles = VBA.Join(sFileArray, vbNullChar) sFiles = sFiles & vbNullChar With uSHFileOp .wFunc = FO_MOVE .pFrom = sFiles .pTo = sDestination If bDoSilent Then .fFlags = FOF_SILENT Or _ FOF_NOCONFIRMATION Or _ FOF_NOCONFIRMMKDIR End If End With MoveFiles = SHFileOperation(uSHFileOp) End Function