Node.js: Dateigröße automatisch formatieren

English Deutsch

Problem:

In NodeJS hast du eine Dateigröße in Bytes und möchtest sie für bessere Lesbarkeit formatieren. Zum Beispiel, wenn die Größe 10000 Bytes ist, möchtest du 10 kilobytes ausgeben, aber wenn es 1200000 ist, möchtest du 1.20 Megabytes ausgeben.

Lösung

Verwende diese Funktion:

autoFormatFilesize.js
function autoFormatFilesize(fileSize) {
    if (fileSize > 1000000000) {
        return (fileSize / 1000000000.0)
            .toPrecision(3) + " gigabytes";
    } else if (fileSize > 1000000) {
        return (fileSize / 1000000.0)
            .toPrecision(3) + " megabytes";
    } else if (fileSize > 1000) {
        return (fileSize / 1000.0)
            .toPrecision(3) + " kilobytes";
    } else {
        return fileSize + " bytes";
    }
}

Dieser Code gibt immer drei Stellen aus. Je nach den Größen, die du verarbeitest, müsstest du Terabytes oder sogar Petabytes zur Liste hinzufügen oder die Genauigkeit der Ausgabe ändern.

Wenn du eine fertige Bibliothek mit mehr Funktionen suchst, schau dir bytes.js an, die du so verwenden kannst:

bytes-example.js
const bytes = require('bytes');
console.log(bytes(1024)); //Gibt "1 kB" aus

Check out similar posts by category: C/C++