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 verschieben?

Für 32Bit und 64Bit Office Versionen

Allgemeine Hinweise beachten

Public Function MoveOperation(dateinamen$(), zielverzeichnis$, Optional boolSubFolder As Boolean = False)
'*******************************************
'Name:      MoveOperation (Function)
'Purpose:   Verschieben von Dateien und Verzeichnissen
'Author:    Tommyk
'Date:      März 11, 2004, 04:21:54
'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_MOVE
        .pFrom = filenames
        .pTo = zielverzeichnis
        If boolSubFolder = True Then .fFlags = FOF_FILESONLY
        .fFlags = .fFlags Or FOF_NOCONFIRMMKDIR
End With
    MoveOperation = (0 = SHFileOperation(shellinfo))
End Function

Aufruf:

Dim s$(0)
Dim s1 As String
    s(0) = "H:\Test"
    s1 = "C:\Test_New\"
    MoveOperation s, s1, True

würde das Verzeichnis "H:\Test" mit allen Unterverzeichnissen nach "C:\Test_New" verschieben.

 

 

Ähnliche Artikel