![]() |
Tipp 0290
|
Dateien kopieren (FileCopy)
|
 |
|
Autor/Einsender: Datum: |
|
Detlev Schubert 27.11.2002 |
|
Entwicklungsumgebung: |
|
VB 5 |
|
|
Mit Visual Basic kann man auf unterschiedliche Art und Weise Dateien kopieren. In diesem
Beispiel wird die VB-Funktion FileCopy verwendet, um eine oder auch mehrere
Dateien zu kopieren.
|
|
Code im Codebereich des Moduls |
|
|
Option Explicit
Public Function CheckPath(ByVal vstrPfad As String) As String
If Right$(vstrPfad, 1) <> "\" Then
CheckPath$ = vstrPfad + "\"
Else
CheckPath$ = vstrPfad
End If
End Function
Public Function FileExists(ByVal vstrDatei As String)
FileExists = (Dir(vstrDatei) <> "")
End Function
|
|
|
Code im Codebereich der Form |
|
|
Option Explicit
Private Sub cmdCopy_Click()
Dim strQuellPfad As String
Dim strQuelle As String
Dim strZielPfad As String
Dim strZiel As String
Dim strMeldung As String
Dim intKopiert As Integer
Dim i As Integer
On Error GoTo CopyError
intKopiert = 0
For i = 0 To Datei1.ListCount - 1
If Datei1.Selected(i) = True Then
strQuellPfad = Verzeichnis1.Path
strQuelle = CheckPath$(strQuellPfad) & Datei1.List(i)
strZielPfad = Verzeichnis2.Path
strZiel = CheckPath$(strZielPfad) & Datei1.List(i)
If strQuelle = strZiel Then
strMeldung = "Das Quellverzeichnis ist mit dem " & _
"Zielverzeichnis identisch!" & vbCrLf & _
"Der Kopiervorgang wird abgebrochen!"
MsgBox strMeldung, vbExclamation, "Fehler"
Exit Sub
ElseIf FileExists(strZiel) Then
strMeldung = "Die Zieldatei existiert bereits!" & vbCrLf
strMeldung = strMeldung & "Die Datei "
strMeldung = strMeldung & UCase$(Datei1.FileName)
strMeldung = strMeldung & " wird daher nicht kopiert!"
MsgBox strMeldung, vbExclamation, "Fehler"
Else
FileCopy strQuelle, strZiel
intKopiert = intKopiert + 1
lblKopiert.Caption = Str$(intKopiert)
lblKopiert.Refresh
Datei2.Refresh
End If
End If
Next
If Val(lblMarkiert.Caption) = 0 Then
strMeldung = "Wählen Sie zunächst die zu kopierenden "
strMeldung = strMeldung & "Quelldateien aus!"
MsgBox strMeldung, vbExclamation, "Fehler"
Else
MsgBox "Die Dateien wurden erfolgreich kopiert!", _
vbInformation, "Meldung"
lblKopiert.Caption = "0"
End If
Exit Sub
CopyError:
strMeldung = "Der Kopiervorgang war nicht erfolgreich." & vbCrLf
strMeldung = strMeldung & "Der Fehler " & Err.Description
strMeldung = strMeldung & " ist aufgetreten."
MsgBox strMeldung, vbCritical, "Fehler"
lblKopiert.Caption = "0"
Exit Sub
End Sub
Private Sub Laufwerk1_Change()
On Error Resume Next
Verzeichnis1.Path = Laufwerk1.Drive
End Sub
Private Sub Verzeichnis1_Change()
Datei1.Path = Verzeichnis1.Path
Datei1.Refresh
End Sub
Private Sub Laufwerk2_Change()
On Error Resume Next
Verzeichnis2.Path = Laufwerk2.Drive
End Sub
Private Sub Verzeichnis2_Change()
Datei2.Path = Verzeichnis2.Path
Datei2.Refresh
End Sub
Private Sub Datei1_Click()
Dim intAnzahl As Integer
Dim i As Integer
intAnzahl = 0
For i = 0 To Datei1.ListCount - 1
If Datei1.Selected(i) = True Then
intAnzahl = intAnzahl + 1
End If
Next i
lblMarkiert.Caption = Str$(intAnzahl)
If intAnzahl > 0 Then cmdCopy.Enabled = True
End Sub
|
|
|
|
|
Windows-Version |
95 |
 |
|
98/SE |
 |
|
ME |
 |
|
NT |
 |
|
2000 |
 |
|
XP |
 |
|
Vista |
 |
|
Win
7 |
 |
|
|
VB-Version |
VBA 5 |
 |
|
VBA 6 |
 |
|
VB 4/16 |
 |
|
VB 4/32 |
 |
|
VB 5 |
 |
|
VB 6 |
 |
|
|
|
Download (4,7 kB)
|
Downloads bisher: [ 4314 ]
|
|
|