Freigeben über


FileStream.Seek-Methode

Legt die aktuelle Position dieses Streams auf den angegebenen Wert fest.

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

Syntax

'Declaration
Public Overrides Function Seek ( _
    offset As Long, _
    origin As SeekOrigin _
) As Long
'Usage
Dim instance As FileStream
Dim offset As Long
Dim origin As SeekOrigin
Dim returnValue As Long

returnValue = instance.Seek(offset, origin)
public override long Seek (
    long offset,
    SeekOrigin origin
)
public:
virtual long long Seek (
    long long offset, 
    SeekOrigin origin
) override
public long Seek (
    long offset, 
    SeekOrigin origin
)
public override function Seek (
    offset : long, 
    origin : SeekOrigin
) : long

Parameter

  • offset
    Der Punkt relativ zu origin, ab dem gesucht werden soll.
  • origin
    Bestimmt den Anfang, das Ende oder die aktuelle Position als Bezugspunkt für origin unter Verwendung eines Werts vom Typ SeekOrigin.

Rückgabewert

Die neue Position im Stream.

Ausnahmen

Ausnahmetyp Bedingung

IOException

Ein E/A-Fehler tritt auf.

NotSupportedException

Der Stream unterstützt keine Suchvorgänge. Dies ist beispielsweise der Fall, wenn FileStream aus einer Pipe- oder Konsolenausgabe erstellt wird.

ArgumentException

Es wurde versucht, eine Suche vor dem Anfang des Streams auszuführen.

ObjectDisposedException

Es wurden Methoden aufgerufen, nachdem der Stream geschlossen wurde.

Hinweise

Diese Methode überschreibt Seek.

Hinweis

Bestimmen Sie mithilfe der CanSeek-Eigenschaft, ob die aktuelle Instanz Suchvorgänge unterstützt. Weitere Informationen finden Sie unter CanSeek.

Suchvorgänge an Positionen über die Länge des Streams hinaus werden unterstützt. Wenn Sie jenseits der Länge der Datei suchen, wird die Datei größer. In Microsoft Windows NT und neueren Betriebssystemen werden am Ende der Datei hinzugefügte Daten auf 0 (null) festgelegt. In Microsoft Windows 98 oder früher werden am Ende der Datei hinzugefügte Daten nicht auf 0 (null) festgelegt. Dies bedeutet, dass zuvor gelöschte Daten im Stream sichtbar sind.

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 kopieren.

File.Copy

FileInfo.CopyTo

Die Größe eines Verzeichnisses abrufen.

FileInfo.Length

Die Attribute einer Datei abrufen.

File.GetAttributes

Die Attribute einer Datei festlegen.

File.SetAttributes

Ein Unterverzeichnis erstellen.

CreateSubdirectory

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

Anzeigen der Dateien in einem Verzeichnis.

Name

Sortieren von Dateien in einem Verzeichnis nach Größe.

GetFileSystemInfos

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

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, 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

Weitere Ressourcen

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