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
 
Weitere Links zum Thema
Datei-Attribute lesen und setzen
Dateien in den Papierkorb verschieben

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: [ 4339 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Samstag, 20. August 2011