vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2019
 
zurück
Rubrik: Dateisystem · Ordner & Verzeichnisse   |   VB-Versionen: VB4, VB5, VB625.06.02
Ordnerstruktur 1:1 kopieren

Mit der VBEx32.DLL ein Leichtes: Kopieren einer kompletten Ordnerstruktur - und zwar 1:1

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  16.506 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Vor kurzem wurden wir im Forum gefragt, wie sich eine vorhandene Ordnerstruktur 1:1 kopieren lässt. Hierbei sollten nicht die in den Ordnern und Unterordnern enthaltenen Dateien kopiert werden, sondern einfach nur alle Ordner und ggf. vorhandene Unterordner ermittelt werden und genau diese ermittelte Ordnerstruktur auf einem anderen Laufwerk bzw. innerhalb eines anderen Ordners erstellt werden.

Zu diesem Zeitpunkt gab es bereits die ersten Releases unserer VBEx32.DLL, so dass obige Frage schnell beantwortet war, denn mit den in der VBEx32.DLL enthaltenen Funktionen lässt sich eine Ordnerstruktur "verdammt schnell" ermitteln und auch erstellen.

Sollten Sie die Visual Basic Extended Libaray (kurz VBEx32.DLL) noch nicht installiert haben, so downloaden und installieren Sie diese über nachfolgenden Link.

Download: VBEx32.DLL (Setup - 598 KB)

Um eine komplette Ordnerstruktur 1:1 zu kopieren, benötigen Sie nachfolgende Funktionen aus dem "Befehlsverzeichnis" der VBEx32.DLL:

' benötigte Funktions-Deklarationen
Private Declare Function VBEX_FolderList Lib "vbex32.dll" _
  Alias "VBFOLDERLIST" ( _
  ByVal sPath As String, _
  nSubFolder As Integer, _
  sFolders() As String) As Long
 
Public Declare Function VBEX_MakeDir Lib "vbex32.dll" _
  Alias "VBMAKEDIR" ( _
  ByVal sPath As String) As Integer

Und hier der "Kopier"-Code:

Dim nCount As Long
Dim sSource As String
Dim sDest As String
Dim sLast As String
Dim i As Long
 
' Ausgangsverzeichnis
sSource = "d:\"
 
' Zielverzeichnis
sDest = "e:\temp"
If Right$(sDest, 1) = "\" Then sDest = Left$(sDest, Len(sDest) - 1)
 
' zunächst alle Ordner / Unterordner des
' Ausgangsverzeichnisses ermitteln
Screen.MousePointer = vbHourglass
ReDim sFolders(5000) As String
nCount = VBEX_FolderList(sSource, 1, sFolders())
 
If nCount >= 0 Then
  ' Jetzt Ordner-Struktur kopieren
  For i = nCount To 0 Step -1
    If Left$(sLast, Len(sFolders(i)) + 1) <> sFolders(i) & "\" Then
      VBEX_MakeDir sDest & sFolders(i)
      sLast = sFolders(i) & "\"
    End If
  Next i
  MsgBox "Ordnerstruktur wurde 1:1 kopiert!"
Else
  MsgBox "Ausgangsverzeichnis enthält keine Ordner."
End If

Der Vorteil von VBEX_MakeDir gegenüber der normalen MKDIR-Anweisung in VB ist, dass die VBEx-Funktion autom. verschachtelte Unterverzeichnisse erstellen kann. Deshalb durchlaufen wir die ermittelte Ordner-Liste auch rückwärts.
 

Dieser Tipp wurde bereits 16.506 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-2019 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