Freigeben über


FileStream-Konstruktor (String, FileMode)

Initialisiert eine neue Instanz der FileStream-Klasse mit dem angegebenen Pfad und dem angegebenen Erstellungsmodus.

Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Sub New ( _
    path As String, _
    mode As FileMode _
)
'Usage
Dim path As String
Dim mode As FileMode

Dim instance As New FileStream(path, mode)
public FileStream (
    string path,
    FileMode mode
)
public:
FileStream (
    String^ path, 
    FileMode mode
)
public FileStream (
    String path, 
    FileMode mode
)
public function FileStream (
    path : String, 
    mode : FileMode
)

Parameter

  • path
    Ein relativer oder absoluter Pfad zu der Datei, die vom aktuellen FileStream-Objekt gekapselt wird.
  • mode
    Eine FileMode-Konstante, die bestimmt, auf welche Weise die Datei geöffnet oder erstellt werden soll.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentException

path ist eine leere Zeichenfolge (""), die nur Leerraum oder mindestens ein ungültiges Zeichen enthält.

- oder -

path verweist auf ein Gerät, das keine Datei ist, z. B. "con:", "com1:", "lpt1:" usw. in einer NTFS-Umgebung.

NotSupportedException

path verweist auf ein Gerät, das keine Datei ist, z. B. "con:", "com1:", "lpt1:" usw. in einer Nicht-NTFS-Umgebung.

ArgumentNullException

path ist NULL (Nothing in Visual Basic).

SecurityException

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

FileNotFoundException

Die Datei kann nicht gefunden werden. Dies ist z. B. der Fall, wenn mode mit FileMode.Truncate oder FileMode.Open festgelegt und die durch path angegebene Datei nicht vorhanden ist. Die Datei muss bereits in diesen Modi vorhanden sein.

IOException

Es ist ein E/A-Fehler aufgetreten, beispielsweise wurde FileMode.CreateNew angegeben, und die durch path angegebene Datei ist bereits vorhanden.

- oder -

Der Stream wurde geschlossen.

DirectoryNotFoundException

Der angegebene Pfad ist ungültig. Dies ist z. B. der Fall, wenn das Laufwerk des Pfads nicht zugeordnet ist.

PathTooLongException

Der angegebene Pfad und/oder der Dateiname überschreiten die vom System vorgegebene Höchstlänge. Beispielsweise dürfen auf Windows-Plattformen Pfade nicht länger als 247 Zeichen und Dateinamen nicht länger als 259 Zeichen sein.

ArgumentOutOfRangeException

mode enthält einen ungültigen Wert.

Hinweise

In .NET Framework wird der direkte Zugriff auf physikalische Datenträger über Pfade, bei denen es sich um Gerätenamen handelt, z. B. "\\.\PHYSICALDRIVE0", nicht unterstützt.

Der path-Parameter kann ein Dateiname sein, u. a. eine Datei in einer UNC-Freigabe (Universal Naming Convention).

Der Konstruktor verfügt über Lese-/Schreibzugriff auf die Datei, und diese wird mit einer Freigabe für den Lesezugriff geöffnet (d. h., dass Anforderungen durch diesen oder einen anderen Prozess, die Datei für das Schreiben zu öffnen, fehlschlagen, bis das FileStream-Objekt geschlossen wird; Lesevorgänge sind jedoch möglich). Die Puffergröße wird auf die Standardgröße von 4096 Bytes (4 KB) festgelegt.

Hinweis

path muss keine Datei sein, die auf der Festplatte gespeichert ist. Es kann ein beliebiger Teil eines Systems sein, das den Zugriff über Streams unterstützt. Je nach System kann diese Klasse z. B. auf ein physikalisches Gerät zugreifen.

CanSeek ist für alle FileStream-Objekte true, die Dateien kapseln. Wenn path ein Gerät angibt, das Suchvorgänge nicht unterstützt, dann ist die CanSeek-Eigenschaft für den resultierenden FileStreamfalse. Weitere Informationen finden Sie unter CanSeek.

FileShare.Read ist der Standard für FileStream-Konstruktoren ohne FileShare-Parameter.

Warnung

Wenn Sie einen Zeichensatz mit einer bestimmten Kultureinstellung kompilieren und die gleichen Zeichen mit einer anderen Kultureinstellung abrufen, können diese möglicherweise nicht interpretiert werden, und es wird eine Ausnahme ausgelöst.

In der folgenden Tabelle sind Beispiele für andere typische oder verwandte E/A-Aufgaben aufgeführt.

Aufgabe

Beispiel in diesem Thema

Erstellen einer Textdatei.

Gewusst wie: Schreiben von Text in eine Datei

In eine Textdatei schreiben.

Gewusst wie: Schreiben von Text in eine Datei

Aus einer Textdatei lesen.

Gewusst wie: Lesen aus einer Textdatei

Text an eine Datei anfügen.

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

File.AppendText

FileInfo.AppendText

Eine Datei umbenennen oder verschieben.

File.Move

FileInfo.MoveTo

Eine Datei löschen.

File.Delete

FileInfo.Delete

Eine Datei kopieren.

File.Copy

FileInfo.CopyTo

Die Größe einer Datei abrufen.

FileInfo.Length

Die Attribute einer Datei abrufen.

File.GetAttributes

Die Attribute einer Datei festlegen.

File.SetAttributes

Bestimmen, ob eine Datei vorhanden ist.

File.Exists

Aus einer Binärdatei lesen.

Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei

In eine Binärdatei schreiben.

Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei

Abrufen einer Dateierweiterung.

Path.GetExtension

Abrufen des vollqualifizierten Pfads einer Datei.

Path.GetFullPath

Abrufen des Dateinamens sowie der Dateierweiterung aus einem Pfad.

Path.GetFileName

Ändern der Erweiterung einer Datei.

Path.ChangeExtension

Beispiel

Im folgenden Codebeispiel wird das byteweise Schreiben von Daten in eine Datei und das anschließende Überprüfen der geschriebenen Daten auf ihre Richtigkeit veranschaulicht.

Imports Microsoft.VisualBasic
Imports System
Imports System.IO
Imports System.Text

Class FStream

    Shared Sub Main()

        Const fileName As String = "Test#@@#.dat"

        ' Create random data to write to the file.
        Dim dataArray(100000) As Byte
        Dim randomGenerator As New Random()
        randomGenerator.NextBytes(dataArray)

        Dim fileStream As FileStream = _
            new FileStream(fileName, FileMode.Create)
        Try

            ' Write the data to the file, byte by byte.
            For i As Integer = 0 To dataArray.Length - 1
                fileStream.WriteByte(dataArray(i))
            Next i

            ' Set the stream position to the beginning of the stream.
            fileStream.Seek(0, SeekOrigin.Begin)

            ' Read and verify the data.
            For i As Integer = 0 To _
                CType(fileStream.Length, Integer) - 1

                If dataArray(i) <> fileStream.ReadByte() Then
                    Console.WriteLine("Error writing data.")
                    Return
                End If
            Next i
            Console.WriteLine("The data was written to {0} " & _
                "and verified.", fileStream.Name)
        Finally
            fileStream.Close()
        End Try
    
    End Sub
End Class
using System;
using System.IO;

class FStream
{
    static void Main()
    {
        const string fileName = "Test#@@#.dat";

        // Create random data to write to the file.
        byte[] dataArray = new byte[100000];
        new Random().NextBytes(dataArray);

        using(FileStream  
            fileStream = new FileStream(fileName, FileMode.Create))
        {
            // Write the data to the file, byte by byte.
            for(int i = 0; i < dataArray.Length; i++)
            {
                fileStream.WriteByte(dataArray[i]);
            }

            // Set the stream position to the beginning of the file.
            fileStream.Seek(0, SeekOrigin.Begin);

            // Read and verify the data.
            for(int i = 0; i < fileStream.Length; i++)
            {
                if(dataArray[i] != fileStream.ReadByte())
                {
                    Console.WriteLine("Error writing data.");
                    return;
                }
            }
            Console.WriteLine("The data was written to {0} " +
                "and verified.", fileStream.Name);
        }
    }
}
using namespace System;
using namespace System::IO;
int main()
{
   String^ fileName =  "Test@##@.dat";
   
   // Create random data to write to the file.
   array<Byte>^dataArray = gcnew array<Byte>(100000);
   (gcnew Random)->NextBytes( dataArray );
   FileStream^ fileStream = gcnew FileStream( fileName,FileMode::Create );
   try
   {
      
      // Write the data to the file, byte by byte.
      for ( int i = 0; i < dataArray->Length; i++ )
      {
         fileStream->WriteByte( dataArray[ i ] );

      }
      
      // Set the stream position to the beginning of the file.
      fileStream->Seek( 0, SeekOrigin::Begin );
      
      // Read and verify the data.
      for ( int i = 0; i < fileStream->Length; i++ )
      {
         if ( dataArray[ i ] != fileStream->ReadByte() )
         {
            Console::WriteLine( "Error writing data." );
            return  -1;
         }

      }
      Console::WriteLine( "The data was written to {0} "
      "and verified.", fileStream->Name );
   }
   finally
   {
      fileStream->Close();
   }

}
import System.*;
import System.IO.*;

class FStream
{   
    public static void main(String[] args)
    {
        final String fileName = "Test#@@#.dat";

        // Create random data to write to the file.
        ubyte dataArray[] = new ubyte[100000];
        new Random().NextBytes(dataArray);        

        FileStream fileStream = new FileStream(fileName, FileMode.Create);
        try {
            // Write the data to the file, byte by byte.
            for(int i=0;i < dataArray.length;i++) {
                fileStream.WriteByte(dataArray[i]);
            } 

            // Set the stream position to the beginning of the file.
            fileStream.Seek(0, SeekOrigin.Begin);

            // Read and verify the data.
            for(int i=0;i < fileStream.get_Length();i++) {
                if ( dataArray[i] != fileStream.ReadByte()  ) {
                    Console.WriteLine("Error writing data.");
                    return;
                }
            } 
            Console.WriteLine("The data was written to {0} "
                + "and verified.", fileStream.get_Name());
        }
        finally {
            fileStream.Dispose();
        }        
    } //main
} //FStream

.NET Framework-Sicherheit

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

FileStream-Klasse
FileStream-Member
System.IO-Namespace
InvalidPathChars

Weitere Ressourcen

Datei- und Stream-E/A
Gewusst wie: Lesen aus einer Textdatei
Gewusst wie: Schreiben von Text in eine Datei