Ordnerstruktur Kopieren - ohne Inhalt

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Aod.

    Ordnerstruktur Kopieren - ohne Inhalt

    Guten abend liebes VB-Paradise Forum,
    diesmal habe ich eine ganz Besondere Frage. Wie kann ich eine ganze Ordner Struktur Kopieren, ohne aber den Inhalt der Ordner mit zu kopieren?


    Ich möchte nun den Ordner Schule mit seinen ganzen Unterordnern kopieren.
    Allerdings nur die Ordnerstruktur. Der Inhalt der Ordner soll nicht mit kopiert werden.

    Ist das möglich? Zumal alle unterordner von "Schule" Variabel sein können.
    Ich hoffe ihr könnte mir helfen.

    Mit freundlichen grüßen,
    Aod
    Hmm, ich glaube ich brauch doch etwas hilfe.
    Ich habe es so versucht, aber die verzeichnisse werden nicht erstellt.

    VB.NET-Quellcode

    1. Dim Ordner As String = "D:\Schule"
    2. For Each folder As String In IO.Directory.GetDirectories(Ordner)
    3. IO.Directory.CreateDirectory("E:\Test")
    4. Next
    @Aod: Sieh Dir mal das an:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    2. Dim Ordner As String = "C:\Meditec"
    3. Dim Ziel As String = "C:\Test"
    4. For Each folder As String In IO.Directory.GetDirectories(Ordner, "*.*", IO.SearchOption.AllDirectories)
    5. Dim OrdnerNeu = folder.Replace(Ordner, Ziel)
    6. IO.Directory.CreateDirectory(OrdnerNeu)
    7. Next
    8. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hey Leute,
    irgend wie brauch ich nochmal hilfe...

    Ich habe an dieser Stelle das Skript angepasst:

    VB.NET-Quellcode

    1. Public Sub CopyFolder(ByVal sSrcPath As String, ByVal sDestPath As String, Optional ByVal bSubFolder As Boolean = True, Optional ByVal bOverWrite As Boolean = True, Optional ByVal bFileCopy As Boolean = False)
    2. ' Falls Zielordner nicht existiert, jetzt erstellen
    3. If Not System.IO.Directory.Exists(sDestPath) Then
    4. System.IO.Directory.CreateDirectory(sDestPath)
    5. End If
    6. ' zunächst alle Dateien des Quell-Ordners ermitteln
    7. ' und kopieren
    8. If bFileCopy Then
    9. Dim sFiles() As String = System.IO.Directory.GetFiles(sSrcPath)
    10. Dim sFile As String
    11. For i As Integer = 0 To sFiles.Length - 1
    12. ' Falls Datei im Zielordner bereits existiert, nur
    13. ' kopieren, wenn Parameter "bOverWrite" auf True
    14. ' festgelegt ist
    15. sFile = sFiles(i).Substring(sFiles(i).LastIndexOf("\") + 1)
    16. If bOverWrite Or Not System.IO.File.Exists(sDestPath & "\" & sFile) Then
    17. System.IO.File.Copy(sFiles(i), sDestPath & "\" & sFile, True)
    18. End If
    19. Next i
    20. End If
    21. If bSubFolder Then
    22. ' jetzt alle Unterordner ermitteln und die CopyFolder-Funktion
    23. ' rekursiv aufrufen
    24. Dim sDirs() As String = System.IO.Directory.GetDirectories(sSrcPath)
    25. Dim sDir As String
    26. For i As Integer = 0 To sDirs.Length - 1
    27. If sDirs(i) <> sDestPath Then
    28. sDir = sDirs(i).Substring(sDirs(i).LastIndexOf("\") + 1)
    29. CopyFolder(sDirs(i), sDestPath & "\" & sDir, True, bOverWrite)
    30. End If
    31. Next i
    32. End If
    33. End Sub


    Hiermit wird dann auch nur die Ordnerstruktur kopiert. Genau so wie ich es am Anfang haben wollte.

    VB.NET-Quellcode

    1. CopyFolder("d:\Schule", "d:\test")


    Jetzt möchte ich aber an einer anderen stelle die Datein in den Unterordnern mit kopieren.
    Das sollte ja hiermit gehen

    VB.NET-Quellcode

    1. CopyFolder("d:\Schule", "d:\test", true, true, true)


    Allerdings werden nur datein aus dem Ordner Schule mit kopiert, nicht aber die Datein in den Unterordnern.
    Kann mir da bitte jemand weiterhelfen?

    Aod schrieb:

    nicht aber die Datein in den Unterordnern.
    Ändere die Reihenfolge.
    Erstelle zunächst die Ordnerstruktur, kopiere dann die Files in die nun bestehende Struktur.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Never Mind...


    ich habe in der einen schleife vergessen bFileCopy hinzuzufügen...

    VB.NET-Quellcode

    1. CopyFolder(sDirs(i), sDestPath & "\" & sDir, True, bOverWrite, bFileCopy)


    Dadurch dass bfilecopy gefehlt hat, wurde immer der "default" wert aus dem anfang eingefügt und daher die probleme...
    Wieder was gelernt :)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Aod“ ()