MemoryStream::Seek Method (Int64, SeekOrigin)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Sets the position within the current stream to the specified value.

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

virtual long long Seek(
	long long offset,
	SeekOrigin loc
) override


Type: System::Int64

The new position within the stream. This is relative to the loc parameter, and can be positive or negative.

Type: System.IO::SeekOrigin

A value of type SeekOrigin, which acts as the seek reference point.

Return Value

Type: System::Int64

The new position within the stream, calculated by combining the initial reference point and the offset.

Exception Condition

Seeking is attempted before the beginning of the stream.


offset is greater than MaxValue.


There is an invalid SeekOrigin.


offset caused an arithmetic overflow.


The current stream instance is closed.

This method overrides Stream::Seek.

Seeking to any location beyond the length of the stream is supported.

Do not use the Seek method to determine the new position in the stream if the MemoryStream was initialized with a non-zero offset. If you do, Seek will return an inaccurate value. Instead, use the Position property to get the new position of the stream.

This code example is part of a larger example provided for the MemoryStream class.

// Set the stream position to the beginning of the stream.
memStream->Seek( 0, SeekOrigin::Begin );

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top