Anlegen vieler Verzeichnisse und Unterverzeichnisse aus Dateiliste möglich?.

  • Hallo,

    eventuell hat jemand von Euch so einen Fall schon gehabt? :ironie:
    Wir bekommen in der Familie langsam aber sicher Probleme, die vielen abgelegten Dateien Zielsicher wieder zu finden, die wir suchen. ?(


    Daher möchte ich für die Familie eine festgelegte Struktur zur Dateiablage im Netzwerkpfad als auch auf den Festplatten der jeweiligen PC anlegen, damit wir die Daten dann, in die vorab festgelegte Struktur aufräumen können und jeder anschließend weiß, wo die Sachen stecken.

    Nun brauche ich Unterstützung, wie ich das automatisieren könnte.
    Event. mit Hilfe einer Textdatei, in der die Ordnerstrukturen einmal niedergeschrieben werden?

    Bitte nicht vorschlagen, mach' einfach das Anlegen der Verzeichnisse einmal von Hand und kopiere dann die Struktur einfach weiter.
    Es sind viele Verzeichnisse die wir in der Familie nach Themen, Jahre und Dateitypen und eventuell anderen Kriterien anlegen möchten und ich möchte nicht immer auf den Button "neuer Ordner" klicken.

    Event. gibt es ganz andere Ansätze von Euch?

    Grundsätzlich wäre es für mich interessant, wie man automatisiert Verzeichnise und deren Unterordner strukturiert mit AutoIt anlegen kann.

    PS: Ich habe noch keine Struktur aufgebaut.

  • Ich hab mal nen kleines Programm gebastelt:
    Du kannst einfach die Struktur in diesem Stil angeben:

    (3 Zeichen vom Typ +| - beliebig oft und am Ende 4)
    Fehlerabfrage ist auch mit drin ;)

    Du musst nur den String, der die Struktur beschreibt übergeben (z.b. nach fileread) und dann den Startordner (standartmäßig @scriptdir).

    In Zeile 27 hab ich das erstellen der Ordner noch auskommentiert, damit es nicht ausversehen zig Ordner schreibt ;)

    Viel Spaß damit.

    • Offizieller Beitrag

    Du kannst die Struktur einmalig erstellen und dann in einer Textdatei speichern. Hatte dazu mal eine UDF erstellt.
    Bei der UDF geht es zwar vorrangig um das Auslesen und Abspeichern der Struktur eines Treeview und Befüllen des Treeview wiederum aus der gespeicherten Struktur, aber das kannst du analog umsetzen zum Erstellen von Ordnerstrukturen.

  • Hallo Kanashius und BugFix,

    Dir Kanashius vielen Dank für den Beispielcode. Das bringt mich sehr viel weiter, was das automatisierte Anlegen von Ordner und Ordnerstrkturen anbelangt.

    Dir BugFix vielen Dank für das posten der UDF. Was mir fehlt ist ein für mich umsetzbares Beispiel, wie ich anhand einer Textdatei mit untereinander geschriebenen Wörtern eine Ordner- und Odnerunterstruktur aufgrund Deiner Codezeilen aufbauen kann. Würdest Du mir bitte ein Beispiel posten? Wäre klasse.

    • Offizieller Beitrag

    OK, Bsp. im Anhang.

    Wie du siehst, nutze ich den "Umweg" über ein Treeview. Hängt einfach damit zusammen, dass ich die UDF dafür erstellt hatte und es somit die einfachste Umsetzung ist. Natürlich könnte man das auch ändern und den Direkten Weg wählen (Ordner-Struktur in Datei lesen / aus Datei Ordner erstellen).

  • zuerst mal vielen Dank für das Skript.

    Irgendwas scheine ich falsch zu machen. In der "test.struct" wird immer "0" eingetragen, wenn ich den Bsp-Inhalt der Struktur Datei hineinkopiere und dann das Skript ausführe. Was mache ich falsch? Es kommt ferner keine Gui zustande. Includes sind alle enthalten.

    • Offizieller Beitrag

    Also:

    Zuerst legst du einmalig die Ordnerstruktur an auf deinem PC, z.B. im Ordner "Muster" sind alle Ordner mit ihren Unterordnern in deiner gewünschten Systematik.
    Nun rufst du die Funktion _FolderStructToFile("Pfad\zu\Muster", "Pfad\für\Strukturdatei")
    Während die Funktion läuft, wird für dich unsichtbar eine GUI mit Treeview erstellt, die Ordnerstruktur aus "Muster" dort abgebildet und anschliessend in die Datei "Pfad\für\Strukturdatei" geschrieben.
    Wenn du jetzt z.B. für "Mama" diese Ordnerstruktur anlegen möchtest rufst du die Funktion
    _CreateStructFromFile("Lw:\Ordner_Mama, "Pfad\für\Strukturdatei") auf.
    Die Funktion erstellt wieder intern unsichtbar eine GUI mit Treeview und lädt dort die gespeicherte Struktur. Dann wird gemäß der Vorlage Ordner für Ordner erstellt (wobei bei einem bereits evtl. vorhandenem Ordner aus der Vorlage dieses erkannt und dann kein neuer erstellt wird).

    Die Struktur-Datei solltest du nicht von Hand bearbeiten, zu schnell könnten Fehler in den Ordnungsnummern auftauchen.

  • Ahhh, ich stand aber so was von auf dem Schlauch. Danke für die Erklärung.

    Zuerst legst du einmalig die Ordnerstruktur an auf deinem PC, z.B. im Ordner "Muster" sind alle Ordner mit ihren Unterordnern in deiner gewünschten Systematik.

    Genau das möchte ich ja verhindern bzw. automatisieren. Am liebsten aus einer Txt Datei heraus mit vielen Ordnernamen (welche untereinander geschrieben sind oder wie eine csv-Datei aufgebaut ist) zumindest einen Stammbaum in der ersten Ebene mit Dircreate anlegen kannn.

    Hat das schon mal jemand gemacht? Besser gefragt, wie kann man das am besten machen?

    EDIT:
    Eigentlich müsste sich mein Thema "Ordner aus Dateiliste erstellen möglich?" nennen. Google kennt das Thema zumindest nach meinen Recherchen nicht. Nur anders herum. 8|

    Einmal editiert, zuletzt von bazii (28. Januar 2017 um 22:02)

    • Offizieller Beitrag

    Also du kannst das schon per Hand schreiben. Die Strukturreihenfolge muß natürlich irgendwie kenntlich gemacht werden.
    Meine UDF enthält die Funktionen um aus den Ordnungsnummern den übergeordneten Ordner lesen zu können, du kannst also auch händisch die Datei anlegen.
    Wichtig ist, dass in jeder Spalte der Ordnungszahlen fortlaufend gezählt wird, also nicht bei jedem Ordner wenn er einen Unterordner bekommt, wieder bei 1 anfangen, sondern Hochzählen von der letzten Zahl dieser Ebene. An meiner Musterdatei wird das erkenntlich.

  • Thema gelöst!

    Es hat geklappt BugFix. :party:

    Einwandfrei!
    Vielen Dank!


    Edit:
    Für alle die das nachvollziehen möchten.

    • Liste mit den zukünftigen Ordnernamen, z. B. In Excel ( geht auch mit Notepad++ sehr gut) untereinander schreiben oder kopieren.
    • Vor die jeweiligen Namen eine 1.|, 2.|, 3.| usw. setzen. Kann automatisiert werden mit Excel oder LibreOffice Calk.
    • Die Datei "test.struct" wird mit den Inhalten, die wie oben beschrieben zu befüllen ist, gefüllt.
    • Die UFD von Bugfix minimal bearbeiten indem:
    • _FolderStructToFile($sPathRoot, $sFileStruct) ausgeklammert und nachfolgend
    • _CreateStructFromFile($sPathTarget, $sFileStruct) aktiviert wird.
    • F5 drücken und 200 Verzeichnisse in weniger als 5 Sek. erstellen. :klatschen::party::rock:

    2 Mal editiert, zuletzt von bazii (28. Januar 2017 um 22:35)