NEWS
Vorhandene Unterordner auslesen
-
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? -
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?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); -
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);@mcu said in Vorhandene Unterordner auslesen:
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. -
@mcu said in Vorhandene Unterordner auslesen:
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. -
@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> -
@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> -
@triplex Ist eine neue Funktion, die alte kann gelöscht werden. Du möchtest ja keine Dateien.
Blockly importieren


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









