vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2018
 
zurück
Rubrik: Dateisystem · Ordner & Verzeichnisse   |   VB-Versionen: VB603.09.08
Verschieben von Ordnern mit dem FSO

Diese Funktion verschiebt einen vorhandenen Ordner mitsamt Unterordner in ein anderes Verzeichnis, wobei das Zielverzeichnis ggf. zunächst erstellt wird, falls nicht vorhanden.

Autor:   Wilhelm ReikampBewertung:     [ Jetzt bewerten ]Views:  8.731 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Mit nachfolgender Funktion lässt sich ein Ordner mitsamt allen vorhandenen Unterordner in ein neues Verzeichnis verschieben, wobei das Zielverzeichnis ggf. vorher erstellt wird, falls dieses noch nicht existiert.

' Verschieben von Ordner mittels FSO
' mit autom. Erstellung von verschachtelten
' Verzeichnissesn im Zielordner
Public Function MoveFolder(ByVal Source As String, _
  ByVal Dest As String, _
  Optional ByVal bOverwrite As Boolean = False) As Boolean
 
  ' Paramterliste:
  '   Source:     Quellordner
  '   Dest:       Zielordner
  '   bOverwrite: Optional.
  '               Vorhandene Dateien überschreiben ja/nein
 
  On Error Resume Next
 
  Dim aStrFolder() As String
  Dim i As Integer
  Dim strParentFolder As String
  Dim bFolderBenoetigt As Boolean
 
  ' FSO-Objekt erstellen
  Dim FSO As Object
  Set FSO = CreateObject("Scripting.FileSystemObject")
 
  ' Wenn Zielverzeichnis bereits vorhanden...
  If FSO.FolderExists(Dest) And FSO.FolderExists(Source) Then
    ' ... nur wenn Parameter bOverwrite = True
   If bOverwrite = True Then
     ' Ordner kopieren
      FSO.CopyFolder Source, Dest, True
 
      ' Quellordner löschen
      FSO.DeleteFolder Source, True
    End If
 
  ElseIf FSO.FolderExists(Source) Then
    ' zunächst Zielverzeichnis erstellen
    strParentFolder = FSO.GetParentFolderName(Dest)
    i = 0
    Do While Not FSO.FolderExists(strParentFolder)
      ReDim Preserve aStrFolder(i)
      aStrFolder(i) = strParentFolder
      i = i + 1
      strParentFolder = FSO.GetParentFolderName(strParentFolder)
      bFolderBenoetigt = True
    Loop
    If bFolderBenoetigt And i = 0 Then
      FSO.CreateFolder aStrFolder(i)
    ElseIf bFolderBenoetigt And i > 0 Then
      For i = UBound(aStrFolder) To LBound(aStrFolder) Step -1
        FSO.CreateFolder aStrFolder(i)
      Next
    End If
    ' jetzt Ordner verschieben
    FSO.MoveFolder Source, Dest
 
  Else
    ' Quellordner existiert nicht!
    MoveFolder = False
    Exit Function
  End If
 
  If FSO.FolderExists(Dest) And Not FSO.FolderExists(Source) Then
    MoveFolder = True
  Else
    MoveFolder = False
  End If
 
  On Error GoTo 0
End Function

Anwendungsbeispiel:

' Ordner d:\temp mitsamt Unterordner auf Laufwerk
' e: in das Verzeichnis \temp\test verschieben, wobei das 
' Zielverzeichnis autom. erstellt wird, falls nicht vorhanden
MoveFolder "d:\temp", "e:\temp\test"

Dieser Tipp wurde bereits 8.731 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2018 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel