Arbeiten mit dem Dateisystem in C#: Von den Grundlagen bis zu fortgeschrittenen Techniken
Die Arbeit mit dem Dateisystem ist eine der Kernaufgaben bei der Entwicklung jeder Anwendung. In C# (.NET) gibt es dafür den leistungsstarken Namensraum System.IO, der dem Entwickler einen vollständigen Satz von Werkzeugen zum Erstellen, Lesen, Schreiben, Verschieben und Löschen von Dateien und Ordnern bietet. In diesem Artikel werden wir alle grundlegenden Operationen mit dem Dateisystem im Detail behandeln, von einfachen Beispielen bis hin zu fortgeschrittenen Datenverarbeitungstechniken.
Grundlagen der Dateiarbeit in C#
Der Namensraum System.IO enthält die Klassen File und FileInfo, die statische und Instanzmethoden zur Verwaltung von Dateien bereitstellen. Betrachten wir die grundlegenden Operationen.
Lesen und Schreiben von Textdateien
Der einfachste Weg, mit Textdateien zu arbeiten, ist die Verwendung der statischen Methoden der Klasse File:
using System.IO;
// Text in eine Datei schreiben (erstellt eine neue Datei oder überschreibt eine vorhandene)string content = "Hallo, Welt! Dies ist ein Beispiel für die Dateiarbeit in C#.";File.WriteAllText(@"C:\\temp\\example.txt", content);
// Den gesamten Text aus einer Datei lesenstring readContent = File.ReadAllText(@"C:\\temp\\example.txt");Console.WriteLine(readContent);
// An das Ende der Datei anhängenFile.AppendAllText(@"C:\\temp\\example.txt", "Neue Zeile hinzugefügt.");Arbeiten mit Binärdateien
Für die Arbeit mit Binärdaten verwenden Sie File.ReadAllBytes und File.WriteAllBytes:
byte[] binaryData = new byte[] { 0x48, 0x65, 0x6C, 0x6C, 0x6F };File.WriteAllBytes(@"C:\\temp\\binary.bin", binaryData);
byte[] readBinary = File.ReadAllBytes(@"C:\\temp\\binary.bin");Console.WriteLine(string.Join(", ", readBinary)); // Ausgabe: 72, 101, 108, 108, 111Überprüfen der Dateiexistenz und Löschen
Vor der Ausführung von Dateioperationen ist es immer nützlich, deren Existenz zu überprüfen:
string filePath = @"C:\\temp\\example.txt";
if (File.Exists(filePath)){ Console.WriteLine("Datei existiert. Lösche..."); File.Delete(filePath); Console.WriteLine("Datei gelöscht.");}else{ Console.WriteLine("Datei nicht gefunden.");}Arbeiten mit Verzeichnissen in C#
Für die Verwaltung von Ordnern werden die Klassen Directory und DirectoryInfo verwendet. Sie ermöglichen das Erstellen, Verschieben, Umbenennen und Löschen von Verzeichnissen sowie das Abrufen von Informationen über diese.
Erstellen und Löschen von Ordnern
string dirPath = @"C:\\temp\\MyNewFolder";
// Ordner erstellen (wenn er bereits existiert, wird keine Ausnahme ausgelöst)Directory.CreateDirectory(dirPath);
// Existenzprüfungif (Directory.Exists(dirPath)){ Console.WriteLine("Ordner erfolgreich erstellt.");}
// Ordner löschen (zweiter Parameter - ob rekursiv gelöscht werden soll)Directory.Delete(dirPath, recursive: true);Console.WriteLine("Ordner gelöscht.");Abrufen einer Liste von Dateien und Unterordnern
Die Methoden GetFiles und GetDirectories ermöglichen das Abrufen des Inhalts eines Verzeichnisses:
string targetDir = @"C:\\temp";
// Alle Dateien im Verzeichnis abrufenstring[] files = Directory.GetFiles(targetDir);Console.WriteLine("Dateien im Verzeichnis:");foreach (string file in files){ Console.WriteLine($" {Path.GetFileName(file)}");}
// Alle Unterordner abrufenstring[] subDirs = Directory.GetDirectories(targetDir);Console.WriteLine("Unterordner:");foreach (string dir in subDirs){ Console.WriteLine($" {Path.GetFileName(dir)}");}
// Suche mit Platzhalter (z.B. alle Textdateien)string[] txtFiles = Directory.GetFiles(targetDir, "*.txt");Console.WriteLine($"{txtFiles.Length} Textdateien gefunden.");Arbeiten mit DirectoryInfo
Die Klasse DirectoryInfo