Arbeiten mit dem Dateisystem in C#: Vollständiger Leitfaden für Entwickler

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

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 von Anwendungen in C#. Ob es um das Speichern von Benutzerdaten, das Lesen von Konfigurationsdateien oder die Verarbeitung von Logs geht – die Fähigkeit, effektiv mit Dateien und Verzeichnissen zu interagieren, ist für jeden .NET-Entwickler notwendig. In diesem Artikel werden wir die wichtigsten Klassen des Namespace System.IO besprechen, lernen, Dateien zu erstellen, zu lesen und zu ändern, sowie bewährte Methoden zur Fehlerbehandlung betrachten.



1. Grundlegende Klassen für die Arbeit mit dem Dateisystem

In .NET sind für die Arbeit mit Dateien und Verzeichnissen mehrere Schlüsselklassen vorgesehen. Betrachten wir sie genauer.



Die Klasse File und FileInfo

File ist eine statische Klasse, die Methoden zum Erstellen, Kopieren, Löschen und Verschieben von Dateien bereitstellt. FileInfo ist eine Instanzklasse, die die Arbeit mit einer bestimmten Datei ermöglicht.

using System.IO;

// Verwendung der statischen Klasse Filestring path = @"C:\\Temp\\test.txt";if (File.Exists(path)){ string content = File.ReadAllText(path); Console.WriteLine(content);}

// Verwendung von FileInfoFileInfo fileInfo = new FileInfo(path);if (fileInfo.Exists){ Console.WriteLine($"Dateigröße: {fileInfo.Length} Bytes"); Console.WriteLine($"Erstellungsdatum: {fileInfo.CreationTime}");}


Die Klasse Directory und DirectoryInfo

Analog dazu ist Directory eine statische Klasse für Operationen mit Verzeichnissen, und DirectoryInfo für die Arbeit mit einem bestimmten Ordner.

string dirPath = @"C:\\Temp\\MyFolder";

// Verzeichnis erstellenDirectory.CreateDirectory(dirPath);

// Informationen über das Verzeichnis abrufenDirectoryInfo dirInfo = new DirectoryInfo(dirPath);if (dirInfo.Exists){ Console.WriteLine($"Unterverzeichnisse: {dirInfo.GetDirectories().Length}"); Console.WriteLine($"Dateien: {dirInfo.GetFiles().Length}");}


Die Klasse Path

Path ist eine Hilfsklasse für die Arbeit mit Pfaden. Sie hilft beim Kombinieren von Pfaden, Extrahieren von Erweiterungen und Dateinamen.

string fullPath = @"C:\\Temp\\myfile.txt";string fileName = Path.GetFileName(fullPath);       // myfile.txtstring extension = Path.GetExtension(fullPath);     // .txtstring directory = Path.GetDirectoryName(fullPath); // C:\\Tempstring combined = Path.Combine(@"C:\\Temp", "newfile.txt"); // C:\\Tempewfile.txt


2. Lesen und Schreiben von Dateien

In C# gibt es mehrere Möglichkeiten, Dateien zu lesen und zu schreiben. Die Wahl hängt von der Datengröße und der erforderlichen Leistung ab.



Lesen von Textdateien

Für kleine Dateien ist es praktisch, einzeilige Methoden zu verwenden:

// Lesen der gesamten Datei in einer Zeilestring text = File.ReadAllText("data.txt");

// Lesen aller Zeilen in ein Arraystring[] lines = File.ReadAllLines("data.txt");

// Lesen mit StreamReader (für große Dateien)using (StreamReader reader = new StreamReader("largefile.txt")){ string line; while ((line = reader.ReadLine()) != null) { Console.WriteLine(line); }}


Schreiben in Dateien

// Schreiben eines StringsFile.WriteAllText("output.txt", "Hello, World!");

// Schreiben eines String-Arraysstring[] lines = { "Erste Zeile", "Zweite Zeile" };File.WriteAllLines("output.txt", lines);

// Anhängen an das Ende einer DateiFile.AppendAllText("log.txt", $"{DateTime.Now}: Neuer Eintrag");

// Schreiben mit StreamWriterusing (StreamWriter writer = new StreamWriter("data.txt", append: true)){ writer.WriteLine("Neue Zeile");}


Arbeiten mit Binärdateien

Für Binärdaten verwenden Sie FileStream und BinaryReader/BinaryWriter:

// Schreiben von Binärdatenusing (BinaryWriter writer = new BinaryWriter(File.Open("data.bin"                

Blogs

Buchempfehlungen