NEWS
Dateigröße mit Bordmitteln
-
Gibt es einen direkten Befehl, um die Dateigröße einer Datei zu ermitteln?
-
var fs = require('fs'); const {size} = fs.statSync('backup/backup.json'); log(size/1024); // KB log(size/(1024*1024)); // MB
-
Danke, das habe ich gesucht. Frage: warum setzt Du "size" in geschweifte Klammern?
-
@wolfgangfb Da die Antwort von fs.statSync('') ein Objekt ist und man nur die size haben möchte:
{'dev':33,'mode':33261,'nlink':1,'uid':1001,'gid':1001,'rdev':0,'blksize':1048576,'ino':3096224743913964,'size':122867029,'blocks':239976,'atimeMs':1653732607019.0588,'mtimeMs':1650067255000,'ctimeMs':1653681143276.067,'birthtimeMs':1649193484247.149,'atime':'2022-05-28T10:10:07.019Z','mtime':'2022-04-16T00:00:55.000Z','ctime':'2022-05-27T19:52:23.276Z','birthtime':'2022-04-05T21:18:04.247Z'}
-
Die Funktion gibt ein umfangreiches Objekt zurück.
Durch eine relativ neue Erweiterung des JavaScript Standards kann man ein oder mehrere Attribute dieses Objekts relativ einfach in eigene Variablen speichern und weiter verwenden.
In diesem Fall wird die Eigenschaft size des Objekts in die variable size gespeicherthttps://www.geeksforgeeks.org/node-js-fs-statsync-method/
https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
-
@wolfgangfb sagte: warum setzt Du "size" in geschweifte Klammern?
Das ist eine andere Schreibweise für
const size = fs.statSync('backup/backup.json').size;
-
Wieder was gelernt, das wusste ich noch nicht.
-
Re: Dateigröße mit Bordmitteln
Ok, die Forensoftware schlägt vor, ein neues Thema aufzumachen, sei es drum:
Also:var fs = require('fs'); const {size} = fs.statSync('backup/backup.json');
Nach der Umstellung auf ESM ist der Aufruf in Zeile 1 wohl deprecated, oder?
Vorgeschlagen bzw. berichtigt wird nun zu:import fs from 'fs';
Auch nach sehr langem Bemühen des Webs finde ich für die Zeile 2 (Zuweisen zur Variablen) keine passende Lösung (oder ich habs nicht verstanden...).
Kann Jemand helfen? - Danke.
-
@wcag22 sagte in Dateigröße mit Bordmitteln:
die Forensoftware schlägt vor, ein neues Thema aufzumachen,
Ist hier ja von 2022, bietet dir aber auch an, hier weiterzumachen.
hab's mal zusammengeführt, ist ja sooo alt nicht, und sollte auch noch nicht veraltet sein.
oder doch?
@wcag22 sagte in Dateigröße mit Bordmitteln:wohl deprecated
was ist denn ESM?
Wikipedia war da nicht sehr hilfreich
https://de.m.wikipedia.org/wiki/ESM -
Moin,
erstmals darauf aufmerksam geworden am 19.06.24 beim Meeting für ioBroker Core/Dev/Admin
"JS-Controller läuft jetzt als ESM Module",
Dann:
Soweit ich das verstanden (?) habe, hängt das mit der node-Version zusammmen.
How To Use ESM: https://byteofdev.com/posts/how-to-use-esm/
Alle Angaben ohne Gewähr
-
@wcag22 Danke!
Da soll dann mal ein Wissender was zu sagen -
Hier mal ein Vergleich der verschiedenen modulsysteme bei JavaScript
https://joeattardi.dev/comparison-of-javascript-modulesZiel ist irgendwann mal ES modules.
Es gibt (und wahrscheinlich noch sehr lange) immer noch viele commons Modul Bibliotheken,https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Statements/import
-
@oliverio
Moin,auch wenn Du mich vermutlich bewusst nicht erwähnt hast ( ) Danke für die Links. Habe sie mir für späteres gründliches Lesen vorgemerkt.
Leider komme ich - zunächst ad hoc - auch nicht weiter:Das führt sofort zum Fehler:
import {size} from '/media/tapo_report.jpg';
Die Frage, wie man nach dieser Methode die Dateigröße ausliest und einer Variablen zuweist, bleibt damit zunächst offen.
@Homoran
Vielleicht findet sich ja noch ein von Dir erwähnter WissenderSchönes WE
Edit:
Das obige Beispiel ist natürlich Unsinn. Soo kann ich nix importieren. Schnellschuss halt... -
@wcag22 sagte in Dateigröße mit Bordmitteln:
@oliverio
Moin,auch wenn Du mich vermutlich bewusst nicht erwähnt hast ( ) Danke für die Links. Habe sie mir für späteres gründliches Lesen vorgemerkt.
Leider komme ich - zunächst ad hoc - auch nicht weiter:Das führt sofort zum Fehler:
import {size} from '/media/tapo_report.jpg';
Die Frage, wie man nach dieser Methode die Dateigröße ausliest und einer Variablen zuweist, bleibt damit zunächst offen.
@Homoran
Vielleicht findet sich ja noch ein von Dir erwähnter WissenderSchönes WE
Edit:
Das obige Beispiel ist natürlich Unsinn. Soo kann ich nix importieren. Schnellschuss halt...Du musst das was oben steht durchaus auch 'korrekt' umsetzen:
Mit dem 'import' befehl importierst du eine Bibliothek. Damit ersetzt
import fs from 'fs'
nurvar fs = require('fs')
In der muss dann die Funktion aufgerufen werden die die Daten liefert::import fs from 'fs'; const {size} = fs.statSync('/media/tapo_report.jpg');
A.
-
@asgothian sagte in Dateigröße mit Bordmitteln:
Erst einmal danke für die Rückmeldung und die Erklärung.
Du musst das was oben steht durchaus auch 'korrekt' umsetzen:
Ja klar , aber das war ja eben mein Verständnisproblem
Mit dem 'import' befehl importierst du eine Bibliothek. Damit ersetzt import fs from 'fs' nur var fs = require('fs') In der muss dann die Funktion aufgerufen werden die die Daten liefert::
Ok, das haste gut erklärt. Wieder was gelernt. Also danke-danke...