Verzeichnisstruktur

  • hallo leute

    hatte eigentlich schon lange diesen auftrag, bin aber ein bisschen in verspätung.
    hier aber was ich bis jetzt habe.

    dieses script erstellt eine verzeichnisstruktur die in einer xml datei definiert wird.
    es ist nicht wirklich viel autoit, aber es ist eine gute möglichkeit mit xml dateien zu arbeiten.

    [autoit]


    #cs ----------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit]

    AutoIt Version: 3.3.0.0
    Author: Gianni

    [/autoit][autoit][/autoit][autoit]

    Script Function:
    Erstellt eine Verzeichnisstruktur

    [/autoit][autoit][/autoit][autoit]

    #ce ----------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit]

    ; Script Start - Add your code below here

    [/autoit][autoit][/autoit][autoit]

    Dim $FSO
    Dim $XMLDocument
    Dim $WSHShell
    Dim $Eingabedatei
    Dim $StartKnoten
    Dim $Basisverzeichnis

    [/autoit][autoit][/autoit][autoit]

    ;====== Bearbeiten!!!! ==============
    $Basisverzeichnis = "D:\"
    $Eingabedatei = @ScriptDir & "\verzeichnisstruktur.xml"
    ; ===== Bearbeiten!!!! ==============

    [/autoit][autoit][/autoit][autoit]

    $FSO = ObjCreate("Scripting.FileSystemObject")
    $XMLDocument = ObjCreate("Msxml2.DOMDocument")
    $XMLDocument.async = False
    $WSHShell = ObjCreate("Wscript.shell")

    [/autoit][autoit][/autoit][autoit]

    If Not $FSO.FolderExists($Basisverzeichnis) Then
    MsgBox(64, "Basisverzeichnis", "Basisverzeichnis wird erstellt!")
    DirCreate($Basisverzeichnis)
    EndIf

    [/autoit][autoit][/autoit][autoit]

    ; Lade die XML
    $XMLDocument.load($Eingabedatei)
    $XMLDocument.async = False

    [/autoit][autoit][/autoit][autoit]

    $StartKnoten = $XMLDocument.documentElement

    [/autoit][autoit][/autoit][autoit]

    If $StartKnoten <> "" Then
    _verzeichnisseAnlegen($StartKnoten, $BasisVerzeichnis)
    Else
    MsgBox(48, "Fehler", "Kein Startknoten")
    EndIf

    [/autoit][autoit][/autoit][autoit]

    MsgBox(64, "Operation beendet", "Operation beendet. Bitte Pfade überprüfen!")

    [/autoit][autoit][/autoit][autoit]

    ; =============================================
    Func _verzeichnisseAnlegen($AktKnoten, $AktVerz)
    Dim $Unterknoten
    Dim $NeuerName
    Dim $NeuerPfad
    Dim $i
    Dim $Knoten
    Dim $Ordner

    [/autoit][autoit][/autoit][autoit]

    $Unterknoten = $AktKnoten.childNodes
    For $i = 0 To $Unterknoten.length -1
    $Knoten = $Unterknoten.Item($i)
    If $Knoten.nodeType = 1 Then
    $NeuerName = $Knoten.GetAttribute("Name")
    $NeuerPfad = $AktVerz & "\" & $NeuerName
    If Not $FSO.FolderExists($NeuerPfad) Then
    $Ordner = DirCreate($NeuerPfad)
    Else
    MsgBox(48, "Fehler", "Verzeichnis " & $NeuerPfad & " ist bereits vorhanden..")
    EndIf

    [/autoit][autoit][/autoit][autoit]

    _verzeichnisseAnlegen($Knoten, $NeuerPfad)
    EndIf
    Next
    EndFunc

    [/autoit]

    verzeichnisstruktur.xml

    Code
    <VerzeichnisStruktur>
    	<Verzeichnis Name="Ordner_1">
    		<Verzeichnis Name="Ordner_1_1"></Verzeichnis>
    		<Verzeichnis Name="Ordner_1_2"></Verzeichnis>
    	</Verzeichnis>
    	<Verzeichnis Name="Ordner_2">
    		<Verzeichnis Name="Ordner_2_1"></Verzeichnis>
    		<Verzeichnis Name="Ordner_2_2"></Verzeichnis>
    	</Verzeichnis>
    </VerzeichnisStruktur>

    nicht vergessen, hier zu bearbeiten:

    [autoit]


    ;====== Bearbeiten!!!! ==============
    $Basisverzeichnis = "D:\"
    $Eingabedatei = @ScriptDir & "\verzeichnisstruktur.xml"
    ; ===== Bearbeiten!!!! ==============

    [/autoit]

    muss jetzt noch das ganze umkehren und aus einer verzeichnisstruktur eine xml erstellen.

    wenn jemand lust hätte, könnte er vielleicht noch eine gui entwerfen um die xml dateien zu erstellen?!
    nur so als idee.

    auf feedbacks würd ich mich freuen.

    grüsse