Arbeiten mit dem Dateisystem in C#: für Anfänger
Die Arbeit mit dem Dateisystem ist eine der Schlüsselkompetenzen jedes Entwicklers. In C# (.NET) sind leistungsstarke Werkzeuge zum Erstellen, Lesen, Schreiben und Löschen von Dateien und Verzeichnissen vorgesehen. In diesem Artikel werden wir die grundlegenden Operationen mit dem Dateisystem besprechen, die sowohl für Anfänger als auch für erfahrene Programmierer nützlich sind. Alle Beispiele sind in C# geschrieben und verwenden den Namensraum System.IO.
Grundlagen der Arbeit mit dem Namensraum System.IO
Der Namensraum System.IO enthält alle wichtigen Klassen für die Interaktion mit dem Dateisystem. Um zu beginnen, fügen Sie am Anfang Ihrer Datei die folgende Direktive hinzu:
using System.IO;using System; // für Console und andere grundlegende OperationenDie wichtigsten Klassen, die wir verwenden werden:
File— statische Methoden für die Arbeit mit Dateien (Erstellen, Kopieren, Löschen).FileInfo— Instanzklasse zum Abrufen von Informationen über eine bestimmte Datei.Directory— statische Methoden für die Arbeit mit Ordnern.DirectoryInfo— Instanzklasse für Informationen über ein Verzeichnis.Path— Hilfsprogramme für die Arbeit mit Pfaden.
Lassen Sie uns jeden Aspekt in der Praxis betrachten.
Erstellen und Schreiben in eine Datei
Der einfachste Weg, eine Datei zu erstellen und Text hineinzuschreiben, ist die Verwendung der Methode File.WriteAllText. Sie erstellt eine Datei (oder überschreibt eine vorhandene) und schreibt eine Zeichenfolge.
string path = @"C:\\Temp\\example.txt";string content = "Hallo Welt! Dies ist eine Testdatei.";
File.WriteAllText(path, content);Console.WriteLine("Datei erstellt und beschrieben.");Wenn Sie mehrere Zeilen schreiben müssen, verwenden Sie File.WriteAllLines:
string[] lines = { "Erste Zeile", "Zweite Zeile", "Dritte Zeile" };File.WriteAllLines(path, lines);Um Daten an das Ende einer vorhandenen Datei anzuhängen, verwenden Sie File.AppendAllText:
File.AppendAllText(path, "Hinzugefügte Zeile.");Lesen von Daten aus einer Datei
Das Lesen einer Datei ist ebenfalls intuitiv. Die Methode File.ReadAllText gibt den gesamten Inhalt als eine Zeichenfolge zurück:
string readContent = File.ReadAllText(path);Console.WriteLine("Dateiinhalt:");Console.WriteLine(readContent);Wenn die Datei aus Zeilen besteht, ist es praktischer, File.ReadAllLines zu verwenden, das ein Array von Zeichenfolgen zurückgibt:
string[] readLines = File.ReadAllLines(path);foreach (string line in readLines){ Console.WriteLine(line);}Für große Dateien ist es besser, das Streaming-Lesen mit StreamReader zu verwenden, um nicht die gesamte Datei in den Speicher zu laden:
using (StreamReader reader = new StreamReader(path)){ string line; while ((line = reader.ReadLine()) != null) { Console.WriteLine(line); }}Arbeiten mit Ordnern (Verzeichnissen)
Das Erstellen, Überprüfen der Existenz und Löschen von Ordnern sind häufige Aufgaben. So wird es mit der Klasse Directory gemacht:
string dirPath = @"C:\\Temp\\MyFolder";
// Existenzprüfungif (!Directory.Exists(dirPath)){ Directory.CreateDirectory(dirPath); Console.WriteLine("Ordner erstellt.");}else{ Console.WriteLine("Ordner existiert bereits.");}
// Ordner löschen (wenn er leer ist)if (Directory.Exists(dirPath)){ Directory.Delete(dirPath); Console.WriteLine("Ordner gelöscht.");}Um eine Liste der Dateien in einem Ordner zu erhalten, verwenden Sie Directory.GetFiles:
string[] files = Directory.GetFiles(@"C:\\Temp");foreach (string file in files){ Console.WriteLine(file);}Analog dazu für Unter