Grundlagen zu Datei-E/A-Vorgängen und dem Dateisystem in .NET Framework (Visual Basic)Basics of .NET Framework File I/O and the File System (Visual Basic)

Klassen im System.IO-Namespace werden zum Arbeiten mit Laufwerken, Dateien und Verzeichnissen verwendet.Classes in the System.IO namespace are used to work with drives, files, and directories.

Der System.IO-Namespace enthält die File- und Directory-Klassen, die die Funktionalität von .NET Framework.NET Framework bereitstellen, die Dateien und Verzeichnisse verändert.The System.IO namespace contains the File and Directory classes, which provide the .NET Framework.NET Framework functionality that manipulates files and directories. 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.Because the methods of these objects are static or shared members, you can use them directly without creating an instance of the class first. Die Klassen FileInfo und DirectoryInfo werden diesen Klassen zugeordnet und sind den Benutzern der My-Funktion bekannt.Associated with these classes are the FileInfo and DirectoryInfo classes, which will be familiar to users of the My feature. 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.To use these classes, you must fully qualify the names or import the appropriate namespaces by including the Imports statement(s) at the beginning of the affected code. Weitere Informationen finden Sie unter Imports-Anweisung (.NET-Namespace und -typ).For more information, see Imports Statement (.NET Namespace and Type).

Hinweis

Weitere Themen in diesem Abschnitt verwenden das Objekt My.Computer.FileSystem anstelle der System.IO -Klassen zum Arbeiten mit Laufwerken, Dateien und Verzeichnissen.Other topics in this section use the My.Computer.FileSystem object instead of System.IO classes to work with drives, files, and directories. Das Objekt My.Computer.FileSystem dient in erster Linie zur Verwendung in Visual BasicVisual Basic-Programmen.The My.Computer.FileSystem object is intended primarily for use in Visual BasicVisual Basic programs. System.IO-Klassen sind für die Verwendung durch eine beliebige Sprache vorgesehen, die .NET Framework.NET Framework, einschließlich Visual BasicVisual Basic, unterstützen.System.IO classes are intended for use by any language that supports the .NET Framework.NET Framework, including Visual BasicVisual Basic.

Definition eines StreamsDefinition of a Stream

.NET Framework.NET Framework verwendet Streams, um Lesen von und Schreiben in Dateien zu unterstützen.The .NET Framework.NET Framework uses streams to support reading from and writing to files. 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.You can think of a stream as a one-dimensional set of contiguous data, which has a beginning and an end, and where the cursor indicates the current position in the stream.

Cursor markiert die aktuelle Position im Dateistream.Cursor shows current position in the filestream.

StreamoperationenStream Operations

Die im Stream enthaltenen Daten stammen möglicherweise aus dem Arbeitsspeicher, einer Datei oder einem TCP/IP-Socket.The data contained in the stream may come from memory, a file, or a TCP/IP socket. Streams verfügen über grundlegende Operationen, die auf sie angewendet werden können.Streams have fundamental operations that can be applied to them:

  • Lesen.Reading. Sie können aus einem Stream lesen und Daten vom Stream in eine Datenstruktur übertragen, z.B. eine Zeichenfolge oder ein Bytearray.You can read from a stream, transferring data from the stream into a data structure, such as a string or an array of bytes.

  • Schreiben.Writing. Sie können in einen Stream schreiben und Daten aus einer Datenquelle in den Stream übertragen.You can write to a stream, transferring data from a data source into the stream.

  • Suchen.Seeking. Sie können Ihre Position im Stream abfragen und ändern.You can query and modify your position in the stream.

Weitere Informationen finden Sie unter Composing Streams.For more information, see Composing Streams.

Arten von StreamsTypes of Streams

In .NET Framework.NET Framework wird ein Stream von der Stream-Klasse dargestellt, die die abstrakte Klasse für alle anderen Streams bildet.In the .NET Framework.NET Framework, a stream is represented by the Stream class, which forms the abstract class for all other streams. Sie können nicht direkt eine Instanz der Stream-Klasse erstellen, doch Sie müssen eine der Klassen verwenden, die diese implementiert.You cannot directly create an instance of the Stream class, but must use one of the classes it implements.

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.There are many types of streams, but for the purposes of working with file input/output (I/O), the most important types are the FileStream class, which provides a way to read from and write to files, and the IsolatedStorageFileStream class, which provides a way to create files and directories in isolated storage. Andere Streams, die für die Arbeit mit Dateieingabe und -ausgabe verwendet werden können, sind:Other streams that can be used when working with file I/O include:

In der nachstehenden Tabelle werden Aufgaben aufgeführt, die häufig mit einem Stream durchgeführt werden:The following table lists tasks commonly accomplished with a stream:

AktionTo InformationenSee
Lesen und Schreiben in einer DatendateiRead and write to a data file Gewusst wie: Lesen und Schreiben einer neu erstellten DatendateiHow to: Read and Write to a Newly Created Data File
Lesen von Text aus einer DateiRead text from a file Gewusst wie: Lesen von Text aus einer DateiHow to: Read Text from a File
Schreiben von Text in eine DateiWrite text to a file Gewusst wie: Schreiben von Text in eine DateiHow to: Write Text to a File
Lesen von Zeichen aus einer ZeichenfolgeRead characters from a string Gewusst wie: Lesen von Zeichen aus einer ZeichenfolgeHow to: Read Characters from a String
Schreiben von Zeichen in eine ZeichenfolgeWrite characters to a string Gewusst wie: Schreiben von Zeichen in eine ZeichenfolgeHow to: Write Characters to a String
Verschlüsseln von DatenEncrypt data Verschlüsseln von DatenEncrypting Data
Entschlüsseln von DatenDecrypt data Entschlüsseln von DatenDecrypting Data

Dateizugriff und DateiattributeFile Access and Attributes

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.You can control how files are created, opened, and shared with the FileAccess, FileMode, and FileShare enumerations, which contain the flags used by the constructors of the FileStream class. 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.For example, when you open or create a new FileStream, the FileMode enumeration allows you to specify whether the file is opened for appending, whether a new file is created if the specified file does not exist, whether the file is overwritten, and so forth.

Die FileAttributes-Enumeration ermöglicht das Sammeln von dateispezifischen Informationen.The FileAttributes enumeration enables the gathering of file-specific information. 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.The FileAttributes enumeration returns the file's stored attributes, such as whether it is compressed, encrypted, hidden, read-only, an archive, a directory, a system file, or a temporary file.

In der folgenden Tabelle sind die Tasks bezüglich Dateizugriff und Dateiattributen aufgelistet.The following table lists tasks involving file access and file attributes:

BeschreibungTo SieheSee
Öffnen und Anfügen an eine ProtokolldateiOpen and append text to a log file Gewusst wie: Öffnen und Anfügen an eine ProtokolldateiHow to: Open and Append to a Log File
Festlegen der Attribute einer DateiDetermine the attributes of a file FileAttributes

DateiberechtigungenFile Permissions

Die Steuerung des Zugriffs auf Dateien und Verzeichnisse kann mit der FileIOPermission-Klasse vorgenommen werden.Controlling access to files and directories can be done with the FileIOPermission class. 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.NETASP.NET und .NET Framework.NET Framework erstellt wird.This may be particularly important for developers working with Web Forms, which by default run within the context of a special local user account named ASPNET, which is created as part of the ASP.NETASP.NET and .NET Framework.NET Framework installations. 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.When such an application requests access to a resource, the ASPNET user account has limited permissions, which may prevent the user from performing actions such as writing to a file from a Web application. Weitere Informationen finden Sie unter Sicherheitsberechtigungen und unter FileIOPermission.For more information, see Security Permissions, and the FileIOPermission.

Isolierte DateispeicherungIsolated File Storage

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.Isolated storage is an attempt to solve problems created when working with files where the user or code may lack necessary permissions. Die isolierte Speicherung weist jedem Benutzer ein Datendepot zu, das einen oder mehrere Speicher enthalten kann.Isolated storage assigns each user a data compartment, which can hold one or more stores. Speicher können voneinander nach Benutzer und Assembly isoliert werden.Stores can be isolated from each other by user and by assembly. Nur der Benutzer oder die Assembly, der bzw. die einen Speicher erstellt hat, verfügt über Zugriff auf ihn.Only the user and assembly that created a store have access to it. Ein Speicher verhält sich wie ein vollständiges virtuelles Dateisystem. Sie können innerhalb eines Speichers Verzeichnisse und Dateien erstellen und bearbeiten.A store acts as a complete virtual file system—within one store you can create and manipulate directories and files.

In der nachstehenden Tabelle werden die Aufgaben aufgelistet, die häufig dem isolierten Datenspeicher zugeordnet sind.The following table lists tasks commonly associated with isolated file storage.

AktionTo InformationenSee
Erstellen eines isolierten SpeichersCreate an isolated store Gewusst wie: Erhalten von Speichern für isolierten SpeicherHow to: Obtain Stores for Isolated Storage
Auflisten von isolierten SpeichernEnumerate isolated stores Gewusst wie: Auflisten von Speichern für isolierten SpeicherHow to: Enumerate Stores for Isolated Storage
Löschen eines isolierten SpeichersDelete an isolated store Gewusst wie: Löschen von Speichern im isolierten SpeicherHow to: Delete Stores in Isolated Storage
Erstellen einer Datei oder eines Verzeichnisses im isolierten SpeicherCreate a file or directory in isolated storage Gewusst wie: Erstellen von Dateien und Verzeichnissen in isoliertem SpeicherHow to: Create Files and Directories in Isolated Storage
Suchen einer Datei im isolierten SpeicherFind a file in isolated storage Gewusst wie: Suchen von vorhandenen Dateien und Verzeichnissen im isolierten SpeicherHow to: Find Existing Files and Directories in Isolated Storage
Lesen aus oder Schreiben in einer Datei im isolierten SpeicherRead from or write to a file in insolated storage Gewusst wie: Lesen bzw. Schreiben von Dateien im isolierten SpeicherHow to: Read and Write to Files in Isolated Storage
Löschen einer Datei oder eines Verzeichnisses im isolierten SpeicherDelete a file or directory in isolated storage Gewusst wie: Löschen von Dateien und Verzeichnissen in isoliertem SpeicherHow to: Delete Files and Directories in Isolated Storage

DateiereignisseFile Events

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.The FileSystemWatcher component allows you to watch for changes in files and directories on your system or on any computer to which you have network access. 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.For example, if a file is modified, you might want to send a user an alert that the change has taken place. 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.When changes occur, one or more events are raised, stored in a buffer, and handed to the FileSystemWatcher component for processing.

Siehe auchSee Also

Erstellen von StreamsComposing Streams
Datei- und Stream-E/AFile and Stream I/O
Asynchrone Datei-E/AAsynchronous File I/O
Für Datei-E/A-Vorgänge und die Arbeit mit dem Dateisystem in .NET Framework verwendete Klassen (Visual Basic)Classes Used in .NET Framework File I/O and the File System (Visual Basic)