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

Klassen im System.IO-Namespace werden zum Arbeiten mit Laufwerken, Dateien und Verzeichnissen verwendet.

Der System.IO-Namespace enthält die File- und Directory-Klassen, die die Funktionalität von .NET Framework bereitstellen, die Dateien und Verzeichnisse verändert. Da die Methoden dieser Objekte statische oder freigegebene Member sind, können Sie diese direkt verwenden, ohne zuerst eine Instanz der Klasse erstellen zu müssen. Die Klassen FileInfo und DirectoryInfo werden diesen Klassen zugeordnet und sind den Benutzern der My-Funktion bekannt. Zum Verwenden dieser Klassen müssen Sie die Namen vollständig qualifizieren oder die entsprechenden Namespaces durch Einschließen des Imports -Arguments (bzw. der Argumente) am Anfang des betreffenden Codes importieren. Weitere Informationen finden Sie unter Imports-Anweisung (.NET-Namespace und -typ).

Hinweis

Weitere Themen in diesem Abschnitt verwenden das Objekt My.Computer.FileSystem anstelle der System.IO -Klassen zum Arbeiten mit Laufwerken, Dateien und Verzeichnissen. Das Objekt My.Computer.FileSystem dient in erster Linie zur Verwendung in Visual Basic-Programmen. System.IO-Klassen sind für die Verwendung durch eine beliebige Sprache vorgesehen, die .NET Framework, einschließlich Visual Basic, unterstützen.

Definition eines Streams

.NET Framework verwendet Streams, um Lesen von und Schreiben in Dateien zu unterstützen. Sie können sich einen Stream als eindimensionalen Satz von zusammenhängenden Daten mit einem Anfang und einem Ende vorstellen, bei dem der Cursor die derzeitige Position im Stream anzeigt.

Cursor markiert die aktuelle Position im Dateistream.

Streamoperationen

Die im Stream enthaltenen Daten stammen möglicherweise aus dem Arbeitsspeicher, einer Datei oder einem TCP/IP-Socket. Streams verfügen über grundlegende Operationen, die auf sie angewendet werden können.

  • Lesen. Sie können aus einem Stream lesen und Daten vom Stream in eine Datenstruktur übertragen, z.B. eine Zeichenfolge oder ein Bytearray.

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

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

Weitere Informationen finden Sie unter Composing Streams.

Arten von Streams

In .NET Framework wird ein Stream von der Stream-Klasse dargestellt, die die abstrakte Klasse für alle anderen Streams bildet. Sie können nicht direkt eine Instanz der Stream-Klasse erstellen, doch Sie müssen eine der Klassen verwenden, die diese implementiert.

Es existieren viele Arten von Streams, doch für die Arbeit mit Dateieingabe und-ausgabe sind die wichtigsten Typen die FileStream-Klasse, die eine Möglichkeit bietet, aus Dateien zu lesen und in diese zu schreiben sowie die IsolatedStorageFileStream-Klasse, die die Möglichkeit bietet, Dateien und Verzeichnisse in einem isolierten Speicher zu erstellen. Andere Streams, die für die Arbeit mit Dateieingabe und -ausgabe verwendet werden können, sind:

In der nachstehenden Tabelle werden Aufgaben aufgeführt, die häufig mit einem Stream durchgeführt werden:

Aktion Informationen
Lesen und Schreiben in einer Datendatei Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei
Lesen von Text aus einer Datei Gewusst wie: Lesen von Text aus einer Datei
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

Sie können steuern, wie Dateien erstellt, geöffnet und mit den Enumerationen FileAccess, FileMode und FileShare freigegeben werden, die die von den Konstruktoren der FileStream-Klasse verwendeten Flags enthalten. Wenn Sie z.B. einen neuen FileStream öffnen oder erstellen, lässt die FileMode-Enumeration zu, dass Sie angeben, ob die Datei zum Anfügen geöffnet ist, ob eine neue Datei erstellt wird, falls die angegebene Datei nicht vorhanden ist, ob die Datei überschrieben wird usw.

Die FileAttributes-Enumeration ermöglicht das Sammeln von dateispezifischen Informationen. Die FileAttributes-Enumeration gibt die gespeicherten Attribute der Datei zurück, z.B. ob sie komprimiert, verschlüsselt, ausgeblendet, schreibgeschützt, ein Archiv, ein Verzeichnis, eine Systemdatei oder eine temporäre Datei ist.

In der folgenden Tabelle sind die Tasks bezüglich Dateizugriff und Dateiattributen aufgelistet.

Beschreibung Siehe
Öffnen und Anfügen an eine Protokolldatei Gewusst wie: Öffnen und Anfügen an eine Protokolldatei
Festlegen der Attribute einer Datei FileAttributes

Dateiberechtigungen

Die Steuerung des Zugriffs auf Dateien und Verzeichnisse kann mit der FileIOPermission-Klasse vorgenommen werden. Dies kann möglicherweise besonders wichtig für Entwickler sein, die mit Web Forms arbeiten, die standardmäßig im Kontext eines bestimmten lokalen Benutzerkontos namens ASPNET ausgeführt werden, das als Teil der Installationen ASP.NET und .NET Framework erstellt wird. Wenn solch eine Anwendung den Zugriff auf eine Ressource anfordert, verfügt das ASPNET-Benutzerkonto über eingeschränkte Berechtigungen, was dazu führen kann, dass der Benutzer an der Ausführung von Aktionen, z.B. dem Schreiben in eine Datei über eine Webanwendung, gehindert wird. Weitere Informationen finden Sie unter Sicherheitsberechtigungen und unter FileIOPermission.

Isolierte Dateispeicherung

Die isolierte Speicherung versucht die Probleme zu lösen, die bei der Arbeit mit Dateien auftreten, wenn der Benutzer oder der Code nicht die notwendigen Berechtigungen aufweist. Die isolierte Speicherung weist jedem Benutzer ein Datendepot zu, das einen oder mehrere Speicher enthalten kann. Speicher können voneinander nach Benutzer und Assembly isoliert werden. Nur der Benutzer oder die Assembly, der bzw. die einen Speicher erstellt hat, verfügt über Zugriff auf ihn. Ein Speicher verhält sich wie ein vollständiges virtuelles Dateisystem. Sie können innerhalb eines Speichers Verzeichnisse und Dateien erstellen und bearbeiten.

In der nachstehenden Tabelle werden die Aufgaben aufgelistet, die häufig dem isolierten Datenspeicher zugeordnet sind.

Aktion Informationen
Erstellen eines isolierten Speichers Gewusst wie: Erhalten von Speichern für isolierten Speicher
Auflisten von isolierten Speichern Gewusst wie: Auflisten von Speichern für isolierten Speicher
Löschen eines isolierten Speichers Gewusst wie: Löschen von Speichern im isolierten Speicher
Erstellen einer Datei oder eines Verzeichnisses im isolierten Speicher Gewusst wie: Erstellen von Dateien und Verzeichnissen in isoliertem Speicher
Suchen einer Datei im isolierten Speicher Gewusst wie: Suchen von vorhandenen Dateien und Verzeichnissen im isolierten Speicher
Lesen aus oder Schreiben in einer Datei im isolierten Speicher Gewusst wie: Lesen bzw. Schreiben von Dateien im isolierten Speicher
Löschen einer Datei oder eines Verzeichnisses im isolierten Speicher Gewusst wie: Löschen von Dateien und Verzeichnissen in isoliertem Speicher

Dateiereignisse

Mit der Komponente von FileSystemWatcher können Sie Änderungen in Dateien und Verzeichnissen in Ihrem System oder auf jedem beliebigen Computer, auf dem Sie über Netzwerkzugriff verfügen, überwachen. Wenn z.B. eine Datei verändert wird, möchten Sie möglicherweise eine Warnung an einen Benutzer versenden, dass die Änderung durchgeführt wurde. Wenn Änderungen auftreten, werden ein Ereignis oder mehrere Ereignisse ausgelöst, in einem Puffer gespeichert und an die FileSystemWatcher-Komponente für die Verarbeitung übermittelt.

Siehe auch

Erstellen von Datenströmen
Datei- und Stream-E/A
Asynchrone Datei-E/A
Für Datei-E/A-Vorgänge und die Arbeit mit dem Dateisystem in .NET Framework verwendete Klassen (Visual Basic)