Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
788 of 1492 menu
◀ ▶

Класс SeekOrigin

SeekOrigin передают в Stream.Seek: Begin - от начала потока, Current - от текущей позиции, End - от конца (смещение часто отрицательное). Работает, если у потока CanSeek равен true.

Синтаксис

long pos = stream.Seek(offset, SeekOrigin.Begin); long pos = stream.Seek(offset, SeekOrigin.Current); long pos = stream.Seek(offset, SeekOrigin.End);

Пример

Давайте встанем на байт 3 от начала через Begin:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); ms.Write([1, 2, 3, 4, 5], 0, 5); long res = ms.Seek(2, SeekOrigin.Begin); Console.WriteLine(res); } }

Результат выполнения кода:

2

Пример

Давайте сдвинемся на один байт вперёд от текущей позиции через Current:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); ms.Write([1, 2, 3, 4, 5], 0, 5); ms.Seek(1, SeekOrigin.Begin); long res = ms.Seek(1, SeekOrigin.Current); Console.WriteLine(res); } }

Результат выполнения кода:

2

Пример

Давайте встанем на последний байт через End со смещением -1:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); ms.Write([1, 2, 3, 4, 5], 0, 5); long res = ms.Seek(-1, SeekOrigin.End); Console.WriteLine(res); } }

Результат выполнения кода:

4

Смотрите также

  • метод Seek,
    который принимает SeekOrigin
  • свойство Position,
    которое показывает текущую позицию
  • свойство CanSeek,
    которое говорит, доступен ли Seek
  • Stream,
    базовый класс потока байтов
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить