Tipp 0178 Ordner mit Unterordner kopieren
Autor/Einsender:
Datum:
  Thomas Becker
20.04.2008
Entwicklungsumgebung:   VB.Net 2005
Framework:   2.0
Normalerweise reicht der Einzeiler
 
My.Computer.FileSystem.CopyDirectory
 
um ein Ordner mitsamt seinen Unterordnern und allen darin enthaltenen Dateien zu kopieren.
Wenn beim Kopiervorgang jedoch Zugriffe auf die Dateien beabsichtigt sind,  also z.B. Ändern von Dateiattributen, dann ist es notwenig, die Dateien im Ordner und allen Unterordnern rekursiv einzeln zu durchlaufen. Ein solcher rekursiver Aufruf arbeitet alle Unterordner ab und erfasst nacheinander alle Dateien.
 
Sub Ordnerkopie(ByVal Quelle As String, ByVal Ziel As String, _
    ByVal Ueberschreiben As Boolean)
  Dim subdir As IO.DirectoryInfo, diQuelle As New _
      IO.DirectoryInfo(Quelle), file As IO.FileInfo

  If IO.Directory.Exists(Ziel) = False Then _
     IO.Directory.CreateDirectory(Ziel)

    'alle Dateien des aktuellen Verz.
  For Each file In diQuelle.GetFiles()
    If (IO.File.Exists(Ziel & "\" & file.Name.ToString) AndAlso _
       Ueberschreiben = False) = False Then _
       IO.File.Copy(file.FullName.ToString, Ziel & "\" & _
       file.Name.ToString, Ueberschreiben)
  Next
     'rekursiver Aufruf aller Unterverzeichnisse
    For Each subdir In diQuelle.GetDirectories()
      Call Ordnerkopie(subdir.FullName.ToString, Ziel & "\" & _
           subdir.Name.ToString, Ueberschreiben)
  Next
End Sub
 
Weitere Links zum Thema
Dateien eines Ordners auflisten
Dateien eines Ordners filtern
Verzeichnisse erstellen und löschen

Windows-Version
98/SE
ME
NT
2000
XP
Vista
Win 7


Download  (17,7 kB) Downloads bisher: [ 464 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

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

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 22. Januar 2012