Tipp 1.10 - Datei kopieren
Wie kann ich Dateien mit Flying Windows kopieren?
Mit dieser Funktion können Sie Dateien mit Flying Windows kopieren. 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: 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 CopyFiles( _ asFiles() As String, _ sTarget As String) _ As Boolean '// ----------------------------------------------------- '// Methode: | Kopiert 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 FO_COPY As Long = &H2 Const FOF_RENAMEONCOLLISION As Long = &H8 Dim sFiles As String Dim uSHFileOp As SHFILEOPSTRUCT On Error Resume Next sFiles = VBA.Join(asFiles, vbNullChar) sFiles = sFiles & vbNullChar With uSHFileOp .hwnd = GetDesktopWindow() .wFunc = FO_COPY .pFrom = sFiles .pTo = sTarget .fFlags = FOF_RENAMEONCOLLISION End With CopyFiles = (SHFileOperation(uSHFileOp) = 0) End Function