Wie entferne ich alle Dateien aus einem Verzeichnis, ohne ein Verzeichnis selbst mit Node.js zu entfernen?
Ich möchte temporäre Dateien entfernen. Ich bin noch nicht gut mit Dateisystemen.
Ich habe diese Methode gefunden, die Dateien und das Verzeichnis entfernt. Darin /path/to/directory/*
funktioniert so etwas nicht.
Ich weiß nicht genau, welche Befehle ich verwenden soll. Danke für die Hilfe.
javascript
node.js
du besser nicht
quelle
quelle
Antworten:
Um alle Dateien aus einem Verzeichnis zu entfernen, müssen Sie zuerst alle Dateien im Verzeichnis mit auflisten
fs.readdir
und dannfs.unlink
jede Datei entfernen. Außerdemfs.readdir
werden nur die Dateinamen angegeben. Sie müssen sich mit dem Verzeichnisnamen abfinden, um den vollständigen Pfad zu erhalten.Hier ist ein Beispiel
quelle
fs.readdirSync
. Weisen Sie einfach alle Dateien zu:const files = fs.readdirSync(directory);
und wiederholen Sie die Schleife auf dieselbe Weisefor (const file of files) {
.Ja, es gibt ein Modul fs-extra .
.emptyDir()
In diesem Modul gibt es eine Methode, die den Job erledigt. Hier ist ein Beispiel:Es gibt auch eine asynchrone Version dieses Moduls. Jeder kann den Link überprüfen.
quelle
Es gibt ein Paket namens Rimraf, das sehr praktisch ist. Dies ist der UNIX-Befehl rm -rf für den Knoten.
Trotzdem kann es auch zu leistungsfähig sein, da Sie damit sehr einfach Ordner löschen können. Mit den folgenden Befehlen werden die Dateien im Ordner gelöscht. Wenn Sie das * entfernen, entfernen Sie den Protokollordner.
https://www.npmjs.com/package/rimraf
quelle
Aufbauend auf der Antwort von @ Waterscroll, wenn Sie asynchron verwenden und in Knoten 8+ warten möchten:
quelle
return await Promise
überflüssige Notiz . Du kannst es einfach tunreturn Promise
. DietoRun
Funktion ist asynchron. Wenn also ein Versprechen zurückgegeben wird, kann die App darauf warten.const { promises: fs } = require('fs');
von Knoten 10+ verwenden, glaube ich.🚀 graph-fs
Installieren
Verwenden
quelle