Tipp 0176 Verzeichnisse zusammenführen
Autor/Einsender:
Datum:
  Michael Werner
12.02.2008
Entwicklungsumgebung:   VB.Net 2005
Framework:   2.0
Die Methode My.Computer.FileSystem.CopyDirectory mit den entsprechenden Parametern kopiert den Inhalt des angegebenen Verzeichnisses sowie das Verzeichnis selbst in ein Zielverzeichnis. Wenn das Zielverzeichnis nicht vorhanden ist, wird es erstellt.
In diesem Tipp geht es nicht um ein einfaches Kopieren eines Ordners inklusive Unterordner, sondern um das Zusammenführen eines Quellordners mit einem gleichnamigen Zielordner. Grundbedingung für das Zusammenführen ist die Gleichnamigkeit der Ordner. Wenn am Zielspeicherort ein Verzeichnis mit dem gleichen Namen vorhanden ist, wird der Inhalt der beiden Verzeichnisse am Zielort zusammengeführt.
Zusammenführen heißt, die Daten werden am Zielort abgeglichen, Änderungen werden aktualisiert: alles, was im Zielordner nicht oder in veralteter Dateiversion vorliegt, wird kopiert beziehungsweise überschrieben. Dateien, die im Quellordner nicht mehr vorhanden sind, werden im Zielordner nicht gelöscht, sondern beibehalten. Es geht also nichts verloren, sondern es wird nur geupdatet.
 
Private Sub btnCopy_Click(ByVal sender As System.Object, ByVal e _
   As System.EventArgs) Handles btnCopy.Click
  OrdnerZusammenführen(txtSrcPath.Text, txtDestPath.Text)
End Sub

Private Sub OrdnerZusammenführen(ByVal srcPath As String, ByVal _
  destPath As String)
  'Prüfen, ob gleichnamig und dann kopieren
  If GetFileName(srcPath) <> GetFileName(destPath) Then
    MessageBox.Show("Quell-und Zielordner müssen für das "& _
      Zusammenführen" & vbNewLine & "gleichnamig sein!", _
      "Abbruch", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    txtDestPath.Text = My.Settings.DestinationPath
    Exit Sub
  End If

  Try
    'Ordner zusammenführen
    'Falls Zielordner noch nicht existiert, wird dieser angelegt.
    Dim showUI As FileIO.UIOption = _
        FileIO.UIOption.OnlyErrorDialogs
    Dim onUserCancel As FileIO.UICancelOption = _
        FileIO.UICancelOption.ThrowException
    My.Computer.FileSystem.CopyDirectory(srcPath, destPath, _
       showUI, onUserCancel)

    MessageBox.Show("Die Verzeichnisse wurden am Zielort " & _
      "erfolgreich zusammengeführt!" & vbNewLine & vbNewLine & _
      srcPath & " ---> " & destPath, "Zusammenführen war " &_
      erfolgreich", MessageBoxButtons.OK, _
      MessageBoxIcon.Information)

     'Beide Ordner öffnen
    Process.Start(srcPath)
    Process.Start(destPath)
    Catch ex As IOException
    MessageBox.Show("Es ist eine Fehler aufgetreten!" & _
       vbNewLine & vbNewLine & "Fehlerursache:" & vbNewLine & _
       ex.Message & vbNewLine & vbNewLine & _
       "Der Vorgang wurde abgebrochen.", "Abruch wegen Fehler!", _
       MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
  End Try

End Sub
 
Weitere Links zum Thema
Verzeichnisse erstellen und löschen

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


Download  (20,3 kB) Downloads bisher: [ 237 ]

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: Dienstag, 17. Januar 2012