Freigeben über


Grundlagen zu Datei-E/A-Vorgängen und dem Dateisystem in .NET Framework

Aktualisiert: November 2007

Der System.IO-Namespace enthält die File-Klasse und die Directory-Klasse, die die .NET Framework-Funktionalität zum Arbeiten mit Dateien und Verzeichnissen bereitstellen. Da alle Methoden dieser Klassen statische oder freigegebene Member sind, können Sie diese direkt verwenden, ohne zuerst eine Instanz der Klasse zu erstellen. Im Zusammenhang mit diesen Klassen stehen die FileInfo-Klasse und die DirectoryInfo-Klasse, die Benutzern des My-Features bereits bekannt sein werden. Beim Einsatz dieser Klassen müssen Sie vollqualifizierte Namen verwenden oder am Anfang des betreffenden Codeabschnitts mit Imports-Anweisungen die relevanten Namespaces importieren. Weitere Informationen finden Sie unter Imports-Anweisung (.NET-Namespace und Typ).

Definition eines Streams

Bei .NET Framework werden Streams zum Lesen und Schreiben von Dateien verwendet. Sie können sich einen Stream als eindimensionale Menge zusammenhängender Daten vorstellen, die über einen Anfang und ein Ende verfügt und bei der der Cursor die aktuelle Position im Stream angibt.

Streamoperationen

Die im Stream enthaltenen Daten können aus dem Arbeitsspeicher, einer Datei oder einem TCP/IP-Socket stammen. Für Streams sind einige grundlegende Operationen möglich, die im Folgenden aufgeführt werden:

  • Lesen. Daten können aus einem Stream gelesen werden. Dabei werden die Daten aus dem Stream in eine Datenstruktur übertragen, beispielsweise eine Zeichenfolge oder ein Bytearray.

  • Schreiben. Sie können in einen Stream schreiben. Dabei werden Daten aus einer Datenquelle in den Stream übertragen.

  • Suchen. Sie können die aktuelle Position im Stream abfragen und ändern.

Weitere Informationen finden Sie unter Erstellen von Streams.

Streamtypen

In .NET Framework wird ein Stream durch die Stream-Klasse dargestellt, die die abstrakte Klasse für alle anderen Streams bildet. Sie können nicht direkt eine Instanz der Stream-Klasse erstellen. Verwenden Sie stattdessen eine der Klassen, die von dieser Klasse implementiert werden.

Aus der Vielzahl von Streamtypen sind bei Datei-E-/A-Operationen vor allem zwei Klassen relevant: die FileStream-Klasse, die eine Möglichkeit zum Lesen und Schreiben von Dateien bietet, und die IsolatedStorageFileStream-Klasse, die eine Möglichkeit zum Erstellen von Dateien und Verzeichnissen in isolierten Speichern bietet. Darüber hinaus können auch die folgenden Streams bei Datei-E/A-Vorgängen verwendet werden:

In der folgenden Tabelle werden häufige Aufgaben im Zusammenhang mit Streams aufgelistet:

Zweck

Thema

Lesen und Schreiben von Datendateien

Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei

Lesen aus einer XML-Datei

Allgemeine XmlReader-Aufgaben

Erstellen eines Streamwriters zum Schreiben von Text in eine Datei

Erstellen eines Schreibers

Lesen von Text aus einer Datei

Gewusst wie: Lesen aus einer Textdatei

Schreiben von Text in eine Datei

Gewusst wie: Schreiben von Text in eine Datei

Lesen von Zeichen aus einer Zeichenfolge

Gewusst wie: Lesen von Zeichen aus einer Zeichenfolge

Schreiben von Zeichen in eine Zeichenfolge

Gewusst wie: Schreiben von Zeichen in eine Zeichenfolge

Verschlüsseln von Daten

Verschlüsseln von Daten

Entschlüsseln von Daten

Entschlüsseln von Daten

Dateizugriff und Dateiattribute

Mit den Enumerationen FileAccess, FileMode und FileShare, die die von den Konstruktoren der FileStream-Klasse verwendeten Flags enthalten, können Sie festlegen, wie Dateien erstellt, geöffnet und freigegeben werden. Wenn Sie z. B. einen FileStream öffnen oder neu erstellen, können Sie mit der FileMode-Enumeration angeben, ob Daten an die geöffnete Datei angehängt werden sollen, ob eine neue Datei angelegt wird, wenn die angegebene Datei nicht vorhanden ist, ob die Datei überschrieben werden soll usw.

Mithilfe der FileAttributes-Enumeration können Sie Informationen zu einer Datei ermitteln. Die FileAttributes-Enumeration gibt die für die Datei gespeicherten Attribute zurück, z. B. ob es sich um eine komprimierte, verschlüsselte, ausgeblendete oder schreibgeschützte Datei, eine Archivdatei, ein Verzeichnis, eine Systemdatei oder eine temporäre Datei handelt.

In der folgenden Tabelle werden Aufgaben im Zusammenhang mit Dateizugriffen und Dateiattributen aufgeführt:

Zweck

Thema

Öffnen einer Protokolldatei und Anfügen von Text

Gewusst wie: Öffnen und Anfügen an eine Protokolldatei

Bestimmen der Attribute einer Datei

FileAttributes

Dateiberechtigungen

Mithilfe der FileIOPermission-Klasse kann der Zugriff auf Dateien und Verzeichnisse festgelegt werden. Dies kann besonders für Entwickler wichtig sein, die mit Web Forms arbeiten, da Web Forms standardmäßig innerhalb des Kontextes des lokalen Benutzers ASPNET ausgeführt werden, der als Teil der ASP.NET- und der .NET Framework-Installation erstellt wird. Beim Zugriff auf Ressourcen durch eine solche Anwendung verfügt das Benutzerkonto ASPNET über eingeschränkte Berechtigungen, sodass Aktionen wie das Schreiben in eine Datei aus einer Webanwendung u. U. nicht möglich sind. Weitere Informationen finden Sie unter Anfordern von Berechtigungen, Sicherheitsberechtigungen und FileIOPermission-Klasse.

In der folgenden Tabelle werden Aufgaben im Zusammenhang mit Dateiberechtigungen aufgelistet.

Zweck

Thema

Anfordern von minimalen Berechtigungen

Gewusst wie: Anfordern von Berechtigungen für den Zugriff auf nicht verwalteten Code

Anfordern von optionalen Berechtigungen

Gewusst wie: Anfordern optionaler Berechtigungen mit dem RequestOptional-Flag

Ablehnen von Berechtigungen

Gewusst wie: Ablehnen von Berechtigungen mithilfe des RequestRefuse-Flags

Anfordern von integrierten Berechtigungen

Gewusst wie: Anfordern von Berechtigungen für einen benannten Berechtigungssatz

Anfordern von mit XML codierten Berechtigungen

Anfordern von codierten XML-Berechtigungen

Isolierter Speicher

Das Konzept des isolierten Speichers stellt einen Versuch zur Lösung von Problemen dar, die beim Arbeiten mit Dateien auftreten, für die keine ausreichenden Berechtigungen vorhanden sind. Bei der isolierten Speicherung wird jedem Benutzer ein Datendepot zugewiesen, das einen oder mehrere Speicher enthalten kann. Speicher können pro Benutzer und Assembly voneinander isoliert werden. Nur der jeweilige Benutzer und die Assembly, die einen Speicher erstellt haben, verfügen über Zugriff auf diesen Speicher. Ein isolierter Speicher dient als vollständiges virtuelles Dateisystem – innerhalb eines Speichers können Sie Verzeichnisse und Dateien erstellen und bearbeiten.

In der folgenden Tabelle werden Aufgaben im Zusammenhang mit isolierten Dateispeichern aufgelistet.

Zweck

Thema

Erstellen eines isolierten Speichers

Gewusst wie: Abrufen eines Speichers für die isolierte Speicherung

Auflisten von isolierten Speichern

Gewusst wie: Auflisten von Speichern für die isolierte Speicherung

Löschen eines isolierten Speichers

Gewusst wie: Löschen von Speichern in der isolierten Speicherung

Erstellen einer Datei oder eines Verzeichnisses in einem isolierten Speicher

Gewusst wie: Erstellen von Dateien und Verzeichnissen in isoliertem Speicher

Suchen einer Datei in einem isolierten Speicher

Gewusst wie: Suchen von vorhandenen Dateien und Verzeichnissen im isolierten Speicher

Lesen oder Schreiben einer Datei in einem isolierten Speicher

Gewusst wie: Lesen und Schreiben von Dateien in der isolierten Speicherung

Erstellen einer Datei oder eines Verzeichnisses in einem isolierten Speicher

Gewusst wie: Löschen von Dateien und Verzeichnissen in isoliertem Speicher

Dateiereignisse

Mit der FileSystemWatcher-Komponente können Sie Änderungen an Dateien und Verzeichnissen auf Ihrem System oder beliebigen Computern ermitteln, auf die Sie über das Netzwerk zugreifen können. So können Sie beispielsweise einen Warnhinweis an einen bestimmten Benutzer senden, wenn eine Datei geändert wurde. Beim Auftreten von Änderungen werden ein oder mehrere Ereignisse ausgelöst, in einem Puffer gespeichert und zur Verarbeitung an die FileSystemWatcher-Komponente weitergeleitet. Weitere Informationen finden Sie unter Reagieren auf Dateisystemereignisse.

Zweck

Thema

Erstellen eines Handlers für Dateisystemereignisse

Gewusst wie: Erstellen von Handlern für Dateisystemereignisse

Konfigurieren einer Instanz der FileSystemWatcher-Komponente

Gewusst wie: Konfigurieren von Instanzen von FileSystemWatcher-Komponenten

Siehe auch

Konzepte

Erstellen von Streams

Grundlegende Datei-E/A

Asynchrone Datei-E/A

Für Datei-E/A-Vorgänge und die Arbeit mit dem Dateisystem in .NET Framework verwendete Klassen

Weitere Ressourcen

Isolierte Speicherung