1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

Problemstellung:

Wie kann ich mit SHFileOperation eine Datei oder Verzeichnis kopieren?

Für 32Bit und 64Bit Office Versionen

Allgemeine Hinweise beachten

 

Public Function CopyOperation(dateinamen$(), zielverzeichnis$, Optional boolSubFolder As Boolean = False)
'*******************************************
'Name:      CopyOperation (Function)
'Purpose:   kopieren von Dateien und Verzeichnissen
'Author:    Tommyk
'Date:      März 11, 2004, 04:23:10
'Inputs:    dateinamen$()= Namen der Quelldateien + Pfad, zielverzeichnis$= Zielverzeichnis
'           boolSubFolder=True, mit Subfolder
'Output:
'*******************************************
Dim filenames$
Dim i As Integer
Dim shellinfo As SHFILEOPSTRUCT
For i = 0 To UBound(dateinamen)
    filenames = filenames & dateinamen(i) + Chr(0)
Next i
filenames = filenames + Chr(0)
With shellinfo
        .hWnd = Screen.ActiveForm.hWnd
        .wFunc = FO_COPY
        .pFrom = filenames
        .pTo = zielverzeichnis
        If boolSubFolder = True Then .fFlags = FOF_FILESONLY
        .fFlags = .fFlags Or FOF_NOCONFIRMMKDIR
End With
    CopyOperation = (0 = SHFileOperation(shellinfo))
End Function

Aufruf:

Dim s$(0)
Dim s1 As String
    s(0) = "C:\Test\Test2"
    s1 = "H:\Test\"
    CopyOperation s, s1, True
würde das Verzeichnis "C:\Test\Test2" mit allen Unterverzeichnissen nach "H:\Test" kopieren.
 

 

 

Ähnliche Artikel