Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Vorhandene Unterordner auslesen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Vorhandene Unterordner auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      TripleX last edited by

      Hallo,

      ich habe folgenden Pfad "/opt/iobroker/iobroker-data/files/vis.0/Slideshow/" in dem ich dann diverse Unterordner anlegen möchte.
      Wie kann ich automatisch die vorhandenen Unterordner auslesen und in eine Liste schreiben?
      Bei IDs geht das ja super mit "IDs vom Selektor".
      Gibt es sowas auch für Ordner oder wie müsste der Exec-Befehl heißen?

      M 1 Reply Last reply Reply Quote 0
      • M
        MCU @TripleX last edited by

        @triplex

        const fs = require("fs");
        const path = "/opt/iobroker/iobroker-data/files/vis.0/Slideshow/";
        
        
        // Funktion: Alle Dateien auslesen
        function getFilesRecursive(directory) {
            let fileList = [];
            try {
                const entries = fs.readdirSync(directory, { withFileTypes: true });
        
                entries.forEach(entry => {
                    const fullPath = `${directory}/${entry.name}`;
                    if (entry.isFile()) {
                        // Datei hinzufügen
                        fileList.push(fullPath);
                    } else if (entry.isDirectory()) {
                        // Rekursiv Unterordner durchsuchen
                        fileList = fileList.concat(getFilesRecursive(fullPath));
                    }
                });
            } catch (error) {
                console.error("Fehler beim Auslesen des Verzeichnisses: "+ error);
            }
            return fileList;
        }
        
        // Dateien auslesen
        let files = getFilesRecursive(path);
        
        // Ergebnis ausgeben
        console.log("Gefundene Dateien: "+ files);
        
        T 1 Reply Last reply Reply Quote 0
        • T
          TripleX @MCU last edited by TripleX

          @mcu said in Vorhandene Unterordner auslesen:

          @triplex

          const fs = require("fs");
          const path = "/opt/iobroker/iobroker-data/files/vis.0/Slideshow/";
          
          
          // Funktion: Alle Dateien auslesen
          function getFilesRecursive(directory) {
              let fileList = [];
              try {
                  const entries = fs.readdirSync(directory, { withFileTypes: true });
          
                  entries.forEach(entry => {
                      const fullPath = `${directory}/${entry.name}`;
                      if (entry.isFile()) {
                          // Datei hinzufügen
                          fileList.push(fullPath);
                      } else if (entry.isDirectory()) {
                          // Rekursiv Unterordner durchsuchen
                          fileList = fileList.concat(getFilesRecursive(fullPath));
                      }
                  });
              } catch (error) {
                  console.error("Fehler beim Auslesen des Verzeichnisses: "+ error);
              }
              return fileList;
          }
          
          // Dateien auslesen
          let files = getFilesRecursive(path);
          
          // Ergebnis ausgeben
          console.log("Gefundene Dateien: "+ files);
          

          Wie bekomme ich das denn in Blockly rein?
          Wenn ich das richtig sehe, werden die Dateien ausgelesen.
          Brauche nur die Unterordner.

          M 1 Reply Last reply Reply Quote 0
          • M
            MCU @TripleX last edited by MCU

            @triplex javascript-Funktion
            d5756fe5-2627-4dec-8bcc-9d333bbcba64-image.png

            cfd33867-48a9-40ec-a53f-47384e7d8184-image.png

            T 1 Reply Last reply Reply Quote 0
            • T
              TripleX @MCU last edited by

              @mcu Bei mir im Log wird nichts aufgelistet

              M 1 Reply Last reply Reply Quote 0
              • M
                MCU @TripleX last edited by

                @triplex Blockly Export

                <xml xmlns="https://developers.google.com/blockly/xml">
                  <variables>
                    <variable id="*q;iSs`Id_uTF|HmOp/9">source</variable>
                  </variables>
                  <block type="procedures_defcustomreturn" id="wKu17Ue=*dW2?C)*:xXk" x="63" y="63">
                    <mutation statements="false">
                      <arg name="source" varid="*q;iSs`Id_uTF|HmOp/9"></arg>
                    </mutation>
                    <field name="NAME">getDirectories</field>
                    <field name="SCRIPT">Y29uc3QgZnMgPSByZXF1aXJlKCJmcyIpOw0KcmV0dXJuIGZzLnJlYWRkaXJTeW5jKHNvdXJjZSwgeyB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pIC8vIFZlcnplaWNobmlzaW5oYWx0IGxlc2VuDQogICAgICAgIC5maWx0ZXIoZGlyZW50ID0+IGRpcmVudC5pc0RpcmVjdG9yeSgpKSAgICAgICAgICAgLy8gTnVyIFZlcnplaWNobmlzc2UgZmlsdGVybg0KICAgICAgICAubWFwKGRpcmVudCA9PiBkaXJlbnQubmFtZSk7ICAgIA==</field>
                    <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                  </block>
                  <block type="debug" id="R}c6u[;J@XF+b}wi;AXM" x="63" y="113">
                    <field name="Severity">info</field>
                    <value name="TEXT">
                      <shadow type="text" id="`du$H!zBIJ2WI^Qfc{35">
                        <field name="TEXT">test</field>
                      </shadow>
                      <block type="procedures_callcustomreturn" id="=@|Gp=y[k+v#dp3y8ZpW">
                        <mutation name="getDirectories">
                          <arg name="source"></arg>
                        </mutation>
                        <value name="ARG0">
                          <block type="text" id="dc0u.yT2Fh]yCPy1Z7dr">
                            <field name="TEXT">/opt/iobroker/iobroker-data/files/0_userdata.0/jarvis/</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </xml>
                
                T 1 Reply Last reply Reply Quote 0
                • T
                  TripleX @MCU last edited by

                  @mcu Das muss ich dann hinter die andere Funktion hängen?

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    MCU @TripleX last edited by MCU

                    @triplex Ist eine neue Funktion, die alte kann gelöscht werden. Du möchtest ja keine Dateien.
                    Blockly importieren
                    80ee7509-3d4a-4778-a098-807ac016b808-image.png

                    96043935-8493-4ed8-abea-2b88e445511b-image.png

                    T 1 Reply Last reply Reply Quote 0
                    • T
                      TripleX @MCU last edited by

                      @mcu Dann bekomme ich im Log folgendes angezeigt.

                      7df729c0-d5b0-470c-9745-213fdbac5605-image.png

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        MCU @TripleX last edited by MCU

                        @triplex Dein Verzeichnis eintragen

                        /opt/iobroker/iobroker-data/files/vis.0/Slideshow/
                        
                        T 1 Reply Last reply Reply Quote 0
                        • T
                          TripleX @MCU last edited by

                          @mcu Immer noch eine Fehlermeldung

                          2ca9d408-24b9-436b-a827-2d76c72c5ae7-image.png

                          ccdd592e-1cd8-484a-9aac-c00924651ee1-image.png

                          M 1 Reply Last reply Reply Quote 0
                          • M
                            MCU @TripleX last edited by MCU

                            @triplex Ist slideshow evtl klein geschrieben?
                            Hast du davor Leerzeichen drin?

                            T 1 Reply Last reply Reply Quote 0
                            • T
                              TripleX @MCU last edited by

                              @mcu Nein

                              M 1 Reply Last reply Reply Quote 0
                              • M
                                MCU @TripleX last edited by

                                @triplex Leerzeichen
                                6707caa1-e125-4e2d-b3d4-e23559afc91c-image.png

                                T 2 Replies Last reply Reply Quote 0
                                • T
                                  TripleX @MCU last edited by

                                  @mcu Wie kommt das denn dahin...LOL...jetzt gehts...danke Dir.

                                  1 Reply Last reply Reply Quote 0
                                  • T
                                    TripleX @MCU last edited by

                                    @mcu Wie kann ich die Funktion denn über einen Trigger auslösen in Blockly?
                                    Finde da gerade nicht den passenden Block.

                                    M 1 Reply Last reply Reply Quote 0
                                    • M
                                      MCU @TripleX last edited by MCU

                                      @triplex Kommt darauf an, was ihn auslösen soll?
                                      5a6b3cf8-2fe1-4eae-aa6f-80914e3b5515-image.png

                                      00e2af11-6328-4097-ae49-c52f4d7aefc9-image.png

                                      T 1 Reply Last reply Reply Quote 0
                                      • T
                                        TripleX @MCU last edited by

                                        @mcu Im Idealfall wenn ich einen neuen Ordner angelegt habe oder alle x Minuten.

                                        M 1 Reply Last reply Reply Quote 0
                                        • M
                                          MCU @TripleX last edited by MCU

                                          @triplex Wird erst ausgeführt, wenn eine Datei hinzugefügt wird. Ein Verzeichnis hinzufügen reicht nicht, ist aber auch nicht normal, da man ja dort auch Dateien einstellt.

                                          0914ad3c-5997-4d52-a009-65378da05517-image.png

                                          Du musst bei Dir für VIS die vis-Dateien in ObjectID (meta) auswählen.

                                          c990676b-ea4b-423d-b107-3e66c64233e7-image.png

                                          1 Reply Last reply Reply Quote 0
                                          • T
                                            TripleX last edited by

                                            @mcu Hab das nicht so ganz verstanden.
                                            Reagiert das Programm dann nicht auf alle Änderungen die unterhalb von von "Vis\0" passieren und nicht nur auf die Änderungen im Ordner "Slideshow"?

                                            M 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            577
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            2
                                            21
                                            559
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo