Search
Close this search box.
C#-Programmierung - Datei- und Verzeichnisoperationen

C# Datei- und Verzeichnisoperationen: Ein umfassender Guide

Einleitung: Datei- und Verzeichnisoperationen sind ein wichtiger Bestandteil jeder Softwareanwendung. In C# gibt es zahlreiche Funktionen und Klassen, die Entwicklern dabei helfen, Dateien und Verzeichnisse zu erstellen, zu lesen und zu bearbeiten. In diesem Guide werden wir uns die verschiedenen Funktionen und Klassen zur Arbeit mit Dateien und Verzeichnissen in C# genauer ansehen.

  1. Erstellen von Dateien und Verzeichnissen: Zum Erstellen von Dateien und Verzeichnissen in C# gibt es die Klasse „System.IO.Directory“. Mit der Methode „CreateDirectory“ können Verzeichnisse und mit „Create“ können Dateien erstellt werden.

  2. Lesen von Dateien: Zum Lesen von Dateien gibt es die Klasse „System.IO.File“. Die Methode „ReadAllText“ ermöglicht es, den Inhalt einer Datei als String zu lesen. Es gibt auch Methoden, um den Inhalt einer Datei in ein Array von Bytes zu lesen oder um eine Datei zeilenweise zu lesen.

  3. Schreiben von Dateien: Zum Schreiben von Dateien gibt es ebenfalls die Klasse „System.IO.File“. Die Methode „WriteAllText“ ermöglicht es, einen String in eine Datei zu schreiben. Es gibt auch Methoden, um Bytes oder Zeilen in eine Datei zu schreiben.

  4. Löschen von Dateien und Verzeichnissen: Zum Löschen von Dateien und Verzeichnissen gibt es die Methoden „Delete“ und „DeleteDirectory“ der Klasse „System.IO.Directory“.

  5. Umbenennen von Dateien und Verzeichnissen: Zum Umbenennen von Dateien und Verzeichnissen gibt es die Methoden „Move“ und „MoveDirectory“ der Klasse „System.IO.File“ bzw. „System.IO.Directory“.

Der Code zum Erstellen von Verzeichnissen sieht folgendermaßen aus:

				
					using System.IO;

string path = @"C:\Beispielverzeichnis";
Directory.CreateDirectory(path);

				
			

Hier wird die Methode CreateDirectory verwendet, um das Verzeichnis mit dem angegebenen Pfad zu erstellen. Falls das Verzeichnis bereits existiert, wird nichts unternommen.

Hier sind alle Methoden zum Erstellen von Dateien und Verzeichnissen in C# mit der „System.IO.Directory“ Klasse:

  • CreateDirectory(string path): Erstellt ein neues Verzeichnis am angegebenen Pfad.
  • CreateDirectory(string path, DirectorySecurity directorySecurity): Erstellt ein neues Verzeichnis am angegebenen Pfad und wendet die angegebene Sicherheitsbeschreibung an.
  • Create(string path): Erstellt eine neue Datei am angegebenen Pfad.
  • Create(string path, int bufferSize): Erstellt eine neue Datei am angegebenen Pfad und verwendet den angegebenen Puffergröße.
  • Create(string path, int bufferSize, FileOptions options): Erstellt eine neue Datei am angegebenen Pfad, verwendet den angegebenen Puffer und Optionen.
  • Create(string path, int bufferSize, FileOptions options, FileSecurity fileSecurity): Erstellt eine neue Datei am angegebenen Pfad, verwendet den angegebenen Puffer, Optionen und Sicherheitsbeschreibung.

Die Methode „Create“ wird normalerweise zum Erstellen einer neuen Datei verwendet, während „CreateDirectory“ zum Erstellen eines neuen Verzeichnisses verwendet wird.

Der Code zum Erstellen von Dateien sieht folgendermaßen aus:

				
					using System.IO;

string path = @"C:\Beispielverzeichnis\Beispieldatei.txt";
if (!File.Exists(path))
{
    File.Create(path);
}

				
			

Hier wird die Methode File.Exists verwendet, um zu überprüfen, ob die Datei bereits existiert. Falls nicht, wird die Methode File.Create verwendet, um die Datei zu erstellen. Beachten Sie, dass File.Create ein FileStream-Objekt zurückgibt, das geschlossen werden muss, wenn Sie es nicht mehr benötigen.

Zum Lesen von Dateien sieht der Code folgendermaßen aus:

				
					string path = @"C:\example\test.txt";
string content = File.ReadAllText(path);

				
			

Um eine Datei in C# zu lesen, verwenden wir die Klasse „System.IO.File“. Mit der Methode „ReadAllText“ können wir den Inhalt einer Datei als String lesen. Wir müssen den Pfad zur Datei als Argument an die Methode übergeben. In diesem Beispiel ist der Pfad „C:\example\test.txt“.

Die Methode „ReadAllText“ liest den Inhalt der angegebenen Datei und gibt ihn als String zurück. Dieser String enthält den gesamten Inhalt der Datei, einschließlich der Zeilenumbrüche. Wir können den zurückgegebenen String dann in der Konsole ausgeben oder in einer Variablen speichern, um ihn später weiter zu verarbeiten.

Es gibt auch andere Methoden, um den Inhalt einer Datei zu lesen, z.B. „ReadAllBytes“, um den Inhalt als Byte-Array zu lesen, oder „ReadLines“, um den Inhalt zeilenweise zu lesen.

Hier sind einige der Methoden, die von der C# System.IO.File-Klasse bereitgestellt werden, um Dateien zu lesen:

  • ReadAllBytes: Liest den Inhalt einer Datei als Byte-Array.
  • ReadAllLines: Liest den Inhalt einer Textdatei zeilenweise in einem String-Array.
  • ReadAllText: Liest den Inhalt einer Textdatei als String.
  • Open: Öffnet eine Datei und gibt einen FileStream zurück, der zum Lesen, Schreiben oder beidem verwendet werden kann.

Es gibt auch einige andere Methoden, die speziell zum Lesen von Text- oder Binärdateien oder zum Lesen von Teilen einer Datei entwickelt wurden. Es ist wichtig zu beachten, dass jede Methode unterschiedliche Parameter akzeptieren kann, um die Art des zu lesenden Inhalts und den Zugriff darauf zu steuern.

Code zum Scheiben von Dateien:

				
					string filePath = @"C:\Users\Username\Desktop\example.txt";
string content = "Dies ist ein Beispieltext.";

// Schreibe Text in Datei
File.WriteAllText(filePath, content);

				
			

Um in C# Daten in eine Datei zu schreiben, wird die Klasse „System.IO.File“ genutzt. Die Methode „WriteAllText“ schreibt dabei den Inhalt eines Strings in eine Datei. Als Parameter werden der Dateipfad und der zu schreibende Text übergeben. In diesem Beispiel wird der Text „Dies ist ein Beispieltext.“ in die Datei „example.txt“ auf dem Desktop geschrieben.

Die wichtigsten Methoden zum Schreiben von Dateien mit der C# System.IO.File Klasse sind:

  • WriteAllBytes: Schreibt den angegebenen Byte-Array in eine Datei.
  • WriteAllLines: Schreibt die angegebenen Zeilen in eine Datei.
  • WriteAllText: Schreibt den angegebenen Text in eine Datei.
  • AppendAllLines: Fügt die angegebenen Zeilen an das Ende der Datei an.
  • AppendAllText: Fügt den angegebenen Text an das Ende der Datei an.

Weitere Methoden zur Manipulation von Dateien und Verzeichnissen können in der C# System.IO.File Klasse gefunden werden.

Code zum Löschen von Dateien/Verzeichnissen: 

				
					// Beispiel zum Löschen einer Datei
string filePath = @"C:\example\file.txt";
if (File.Exists(filePath))
{
    File.Delete(filePath);
}

// Beispiel zum Löschen eines Verzeichnisses
string directoryPath = @"C:\example\directory";
if (Directory.Exists(directoryPath))
{
    Directory.Delete(directoryPath, true);
}

				
			

Zum Löschen von Dateien und Verzeichnissen gibt es in C# die Klasse „System.IO.Directory“. Die Methoden „Delete“ und „DeleteDirectory“ können verwendet werden, um Dateien oder Verzeichnisse zu löschen.

In dem obigen Code-Beispiel wird zuerst überprüft, ob die zu löschende Datei oder das zu löschende Verzeichnis existieren, bevor es gelöscht wird. Die Methode „File.Exists“ überprüft, ob die Datei existiert, und die Methode „Directory.Exists“ überprüft, ob das Verzeichnis existiert.

Wenn die Datei oder das Verzeichnis existieren, wird die Methode „File.Delete“ oder „Directory.Delete“ verwendet, um die Datei oder das Verzeichnis zu löschen. Die Methode „Directory.Delete“ hat auch einen optionalen zweiten Parameter „recursive“, der festlegt, ob das Verzeichnis und alle darin enthaltenen Dateien und Verzeichnisse gelöscht werden sollen. Wenn „recursive“ auf „true“ gesetzt ist, werden alle enthaltenen Dateien und Verzeichnisse rekursiv gelöscht.

Die Methoden zum Löschen von Dateien/Verzeichnissen der C# System.IO.Directory Klasse sind:

  • Delete: Löscht eine Datei
  • DeleteIfExists: Löscht eine Datei, falls sie existiert
  • DeleteDirectory: Löscht ein Verzeichnis
  • DeleteDirectoryIfExists: Löscht ein Verzeichnis, falls es existiert

Hinweis: Diese Methoden können eine Ausnahme (Exception) auslösen, wenn es z.B. keine Berechtigung zum Löschen der Datei oder des Verzeichnisses gibt.

Code zum Umbenennen von Dateien/Verzeichnissen:

				
					// Umbenennen einer Datei
File.Move("alteDatei.txt", "neueDatei.txt");

// Umbenennen eines Verzeichnisses
Directory.Move("alterOrdner", "neuerOrdner");

				
			

Um eine Datei oder ein Verzeichnis umzubenennen, wird die Move-Methode verwendet. Diese Methode benötigt als Parameter den alten und den neuen Datei-/Ordnernamen. Dabei muss der vollständige Pfad angegeben werden. In dem Beispiel wird die Datei „alteDatei.txt“ in „neueDatei.txt“ umbenannt und der Ordner „alterOrdner“ in „neuerOrdner“ umbenannt.

Die C# System.IO.Directory Klasse bietet die folgenden Methoden zum Umbenennen von Dateien und Verzeichnissen:

  • Move – Diese Methode verschiebt eine Datei oder einen Ordner an den angegebenen Speicherort und benennt sie/ihn dabei um. Die Signatur der Methode lautet: public static void Move(string sourceDirName, string destDirName);

  • MoveDirectory – Diese Methode verschiebt ein Verzeichnis und alle darin enthaltenen Dateien und Ordner an den angegebenen Speicherort und benennt es dabei um. Die Signatur der Methode lautet: public static void MoveDirectory(string sourceDirName, string destDirName);

Beide Methoden werfen eine Ausnahme, wenn das Ziel bereits vorhanden ist oder ein Fehler beim Umbenennen der Datei/Verzeichnisses auftritt.

Fazit: Das Arbeiten mit Dateien und Verzeichnissen ist ein wichtiger Bestandteil der C#-Programmierung. Mit den Funktionen und Klassen der „System.IO“ Namespace können Entwickler Dateien und Verzeichnisse erstellen, lesen, schreiben, umbenennen und löschen. Mit diesem Guide sollten Sie nun in der Lage sein, diese Funktionen und Klassen in Ihren eigenen Projekten anzuwenden.

Aufgabe:

Aufgabe zum Mitmachen:

Erstelle ein neues Verzeichnis namens „Testverzeichnis“ auf deinem Desktop.

Um die Lösung anzuzeigen, fahre mit der Maus in die Mitte des darunterliegenden Fensters.

				
					using System.IO;

string path = @"C:\Users\Benutzername\Desktop\Testverzeichnis";
Directory.CreateDirectory(path);
				
			

In dieser Lösung wird die Klasse „System.IO.Directory“ verwendet, um ein neues Verzeichnis namens „Testverzeichnis“ auf dem Desktop zu erstellen. Der Pfad zum Verzeichnis wird als String „path“ definiert und dann wird die Methode „CreateDirectory“ verwendet, um das Verzeichnis zu erstellen. Beachte, dass der Pfad dem eigenen Benutzernamen angepasst werden muss.

Zurück zum vorherigen Teil des C# Kurses
Klicken Sie auf den Pfeil, um zum vorherigen Teil des Kurses zurückzukehren
Pfeil-Button zum nächsten Teil des Kurses
Klicken Sie auf den Pfeil, um zum nächsten Teil des Kurses zu gelangen