Erstellen von Dateien und Verzeichnissen

Abgeschlossen

Als Entwickler*in bei Tailwind Traders sind Sie dabei, sich in die praktische Anwendung des programmgesteuerten Erstellens und Löschens neuer Dateien und Verzeichnisse einzuarbeiten. Dies ist eine häufige Anforderung für Branchenanwendungen.

Bisher haben Sie gelernt, wie Sie mithilfe des fs-Moduls mit Dateien und Verzeichnissen arbeiten. Das fs-Modul kann auch verwendet werden, um Dateien und Verzeichnisse in einem System programmgesteuert zu erstellen, zu löschen, zu kopieren, zu verschieben oder anderweitig zu bearbeiten.

Erstellen von Verzeichnissen mit fs.mkdir

Die mkdir-Methode ermöglicht das Erstellen von Verzeichnissen. Die folgende Methode erstellt einen Ordner namens newDirectory innerhalb des Ordners 201.

const fs = require("fs").promises;
const path = require("path");

await fs.mkdir(path.join(__dirname, "stores", "201", "newDir"));

Die Dateistruktur /stores/201 muss bereits vorhanden sein, andernfalls schlägt diese Methode fehl. Sie können ein optionales recursive-Flag übergeben, falls die Dateistruktur nicht vorhanden ist, aber erstellt werden soll.

await fs.mkdir(path.join(__dirname, "newDir", "stores", "201", "newDir"), {
  recursive: true
});

Überprüfen des Vorhandenseins von Verzeichnissen

Wenn das zu erstellende Verzeichnis bereits vorhanden ist, löst die mkdir-Methode einen Fehler aus. Dies ist nicht wünschenswert, da der Fehler zu einer abrupten Beendigung Ihres Programms führt. Zur Vermeidung dieser Situation empfiehlt Node.js, die mkdir-Methode mit einem try/catch-Block zu umschließen, wenn Sie die Datei oder das Verzeichnis (wie hier) nach dem Öffnen bearbeiten möchten.

const pathToCreate = path.join(__dirname, "stores", "201", "newDirectory");

// create the salesTotal directory if it doesn't exist
try {
  await fs.mkdir(salesTotalsDir);
} catch {
  console.log(`${salesTotalsDir} already exists.`);
}

Erstellen von Dateien mit fs.writeFile

Sie können Dateien mithilfe der fs.writeFile-Methode erstellen. Dieser Methode werden ein Pfad zur Datei sowie die Daten übergeben, die Sie in die Datei schreiben möchten. Wenn die Datei bereits vorhanden ist, wird sie überschrieben.

Dieser Code generiert beispielsweise eine Datei namens greeting.txt mit dem Text „Hello World!“ (Hallo Welt!).

const pathToFile = path.join(__dirname, "greeting.txt");
await fs.writeFile(pathToFile, "Hello World!");

Wenn Sie den letzten Parameter auslassen – also die Daten, die in die Datei geschrieben werden sollen – schreibt Node.js „undefined“ in die Datei. Dies ist wahrscheinlich nie das gewünschte Ergebnis. Wenn Sie eine leere Datei schreiben möchten, übergeben Sie eine leere Zeichenfolge. Noch besser wäre es, die String-Funktion zu übergeben, die im Grunde genommen dasselbe bewirkt, ohne leere Anführungszeichen im Code zu hinterlassen.

const pathToFile = path.join(__dirname, "greeting.txt");
await fs.writeFile(pathToFile, String());

In der nächsten Übung wenden Sie Ihr Wissen zum Erstellen von Dateien und Verzeichnissen an, um das Programm so zu erweitern, dass ein Verzeichnis erstellt wird, in dem die Gesamtsumme aus allen Umsatzdateien gespeichert wird.