FolderStruct - Ordnerstruktur in Datei speichern / aus Datei erstellen

    • Offizieller Beitrag

    In diesem Thread hatte ich ein Lösungsvariante basierend auf meiner UDF zum Speichern/Wiederherstellen von Treeview-Inhalten verwendet.
    Jetzt habe ich das zusammengedampft und eine Lösung zum direkten Speichern von Ordnungsstrukturen eines Root-Pfades und der Umkehraktion: Ordnerstruktur in einem Ziel-Pfad aus einer Strukturdatei anlegen.
    Das ist z.B. nützlich, wenn ich auf mehreren PC dieselbe Verwaltungsstruktur haben möchte, sodass jeder User Daten auf Anhieb im vertrauten Ordner findet. Problemlos ist, wenn im Zielpfad bereits gleichnamige Ordner vorhanden sind - diese bleiben erhalten.

    Strukturdatei per Hand


    Eine Strukturdatei kann durchaus auch von Hand erstellt werden, d.h. ich muß nicht zwingend zuerst im Explorer alle Ordner mit Unterordnern erstellen um daraus die Strukturdatei zu erstellen. Dabei ist aber zwingend deren Aufbau zu beachten.
    In jeder Zeile steht:
    Orderstring<TRENNER>Ordnername
    Orderstring:
    ein Zähler je Anzahl Ordner in einer Pfadtiefe wird zu einem String gebildet
    ..Root\A = "1"
    ..Root\A\1 = "1.1"
    ..Root\B = "2"
    ..Root\B\1 = "2.2" !! erster Ordner unter B - ABER der 2. in dieser Pfadtiefe
    ..Root\B\1\1 = "2.2.1"
    ..Root\B\1\2 = "2.2.2"
    ..Root\B\1\3 = "2.2.3"
    ..Root\C = "3"
    ..Root\C\1 = "3.3"
    ..Root\C\1\1 = "3.3.4"
    ..Root\C\1\2 = "3.3.5"

    <TRENNER>:
    Das Zeichen von Opt("GUIDataSeparatorChar") - Standard "|"

    Ordnername:
    Der Name des Ordners

    Die resultierende Strukturdatei müsste also lauten:
    1|A
    1.1|1
    2|B
    2.2|1
    2.2.1|1
    2.2.2|2
    2.2.3|3
    3|C
    3.3|1
    3.3.4|1
    3.3.5|2




    Funktionen:

    _FolderStruct_WriteToFile
    Gets the structure of folders from a given root path and write this to an file

    _FolderStruct_CreateFromFile
    Creates folder in the same structure like the given structure file in a given target path

    _FolderStruct_PathDepth
    Sets a new value for the maximum possible path depth or gets the current one.

    Details s. Funktionsheader

  • Nicht ein Kommentar hier zu sehen, schade für so eine tolle arbeit. Ich dachte auch schon länger daran irgendwas mit der tree funktion anzufangen. Ich dachte dabei daran den Output auszulesen & anhand dieser die Ordner zu erstellen. Gut das dein Script mir ein Gutes beispiel ist. Wenn es nicht sogar weit praktischer ist als mit "tree" zu arbeiten