Arbeiten mit dem Dateisystem in C#: praktische Beispiele für .NET

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 der Theorie zur Praxis



Das Arbeiten mit dem Dateisystem ist eine der grundlegenden Aufgaben, mit denen jeder Entwickler konfrontiert wird. Ob Protokollierung, Verarbeitung von Konfigurationsdateien, Datenimport oder Erstellung von Berichten – die Fähigkeit, Dateien in C# (.NET) kompetent zu lesen, zu schreiben und zu verwalten, ist in jedem Projekt notwendig. In diesem Artikel werden wir praktische Beispiele für die Arbeit mit dem Dateisystem in C# durchgehen, von einfachen Operationen bis hin zur Verarbeitung von Verzeichnissen.



Wir werden den Namensraum System.IO verwenden, der alle notwendigen Klassen für die Interaktion mit dem Dateisystem bereitstellt.



1. Grundlegende Klassen für die Arbeit mit Dateien und Ordnern



Bevor wir Code schreiben, ist es wichtig, die wichtigsten Klassen kennenzulernen:



  • File – statische Klasse zum Erstellen, Kopieren, Löschen und Verschieben von Dateien.
  • FileInfo – Instanzklasse, die Informationen über eine bestimmte Datei und Methoden zur Arbeit mit ihr bereitstellt.
  • Directory – statische Klasse für die Arbeit mit Ordnern.
  • DirectoryInfo – Instanzklasse zum Abrufen von Informationen über einen Ordner.
  • Path – Hilfsklasse für die Arbeit mit Dateipfaden.


Betrachten wir ein einfaches Beispiel – die Überprüfung, ob eine Datei existiert, und deren Erstellung:



using System;using System.IO;

class Program{ static void Main() { string filePath = @"C:\\Test\\example.txt";

if (File.Exists(filePath)) { Console.WriteLine("Datei existiert."); } else { File.Create(filePath).Close(); Console.WriteLine("Datei erstellt."); } }}


Beachten Sie: Nach File.Create() rufen wir Close() auf, um den Stream freizugeben. In modernen Projekten ist es besser, die using-Anweisung zu verwenden.



2. Lesen und Schreiben von Textdateien



Das häufigste Szenario ist das Lesen und Schreiben von Textinformationen. In C# gibt es dafür die praktischen Klassen StreamReader und StreamWriter.



2.1 Daten in eine Datei schreiben



Beispiel für das Schreiben von Zeilen in eine Datei mit StreamWriter:



string path = @"C:\\Test\\log.txt";string[] lines = { "Erste Zeile", "Zweite Zeile", "Dritte Zeile" };

using (StreamWriter writer = new StreamWriter(path, false)){ foreach (string line in lines) { writer.WriteLine(line); }}Console.WriteLine("Daten geschrieben.");


Der zweite Parameter des StreamWriter-Konstruktors – false – bedeutet Überschreiben der Datei. Wenn Sie true angeben, werden die Daten am Ende angehängt.



2.2 Daten aus einer Datei lesen



Lesen des gesamten Inhalts oder zeilenweise:



string path = @"C:\\Test\\log.txt";

// Lesen des gesamten Textes in einer Zeilestring allText = File.ReadAllText(path);Console.WriteLine("Gesamter Text:" + allText);

// Zeilenweises Lesenstring[] allLines = File.ReadAllLines(path);Console.WriteLine("Zeilenweise:");foreach (string line in allLines){ Console.WriteLine(line);}


Für große Dateien ist es besser, StreamReader mit zeilenweisem Lesen in einer Schleife zu verwenden, um nicht die gesamte Datei in den Speicher zu laden.



using (StreamReader reader = new StreamReader(path)){    string currentLine;    while ((currentLine = reader.ReadLine()) != null)    {        Console.WriteLine(currentLine);    }}


3. Arbeiten mit Binärdateien (FileStream)



Wenn Sie mit Binärdaten (Bilder, Archive, serialisierte Objekte) arbeiten müssen, wird die Klasse FileStream verwendet. Sie ermöglicht das Lesen und Schreiben von Daten in Form von Bytes.



Beispiel für das Schreiben und Lesen eines Byte-Arrays:



Blogs

Buchempfehlungen