Halt!!
Ich hoffe du hast dir noch nicht die Arbeit angetan und hast dir eine eigene Routine zum kopieren geschrieben!
Es gibt zwar keine Funktion in VB mit der man Ordner Kopieren kann aber einen API Call.
Der ist recht simpel zu benutzen :
Code:
Option Explicit
Private Declare Function SHFileOperation Lib "shell32.dll" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String ' only used if FOF_SIMPLEPROGRESS
End Type
Private Const FO_COPY = &H2
Private Const FO_MOVE = &H1
Private Const FOF_NOCONFIRMATION = &H10
Private Const FOF_SILENT = &H4
Private Sub CMD_Durchfueren_Click()
Dim FileOP As SHFILEOPSTRUCT
Dim lResult As Long
If EDT_Von = "" Or EDT_Nach = "" Then
MsgBox "Sie müssen eine quelle und ein Ziel angeben!", vbOKOnly + vbCritical, "Fehler"
Exit Sub
End If
With FileOP
.pFrom = EDT_Von 'Text von einer Editbox was kopiert wird (opt. mit wildkats)
.pTo = EDT_Nach 'Text von einer Editbox wohin wird kopiert.
.wFunc = FO_COPY
'.wFunc = FO_MOVE 'Anstatt obriger Zeile um zu verschieben und nicht zu kopieren
'.wFunc = FOF_SILENT 'Zeigt keine Dialogbox an
'.wFunc = FOF_NOCONFIRMATION 'Vorhandene Dateien werden ohne Nachfrage überschrieben usw..
End With
lResult = SHFileOperation(FileOP)
If Not lResult = 0 Then
MsgBox "Es ist ein Fehler aufgetreten", vbOKOnly + vbCritical, "FEHLER"
End If
End Sub
Ich hab dir auch ein Beispielprogramm angehängt.
Für wFunc gibt es noch einige andere nützliche Optienen die ich die im Beispielprog auch mit einer (englischen) Bemerkung dazugeschrieben habe.