«Случайный» доступ к большому файлу в C # - PullRequest
1 голос
/ 02 апреля 2012

Я записываю видео из прямой трансляции. Формат, в котором мы записываем, требует, чтобы количество кадров было в исходном заголовке. Очевидно, что когда мы начинаем запись, мы не знаем размер видео, и оно может довольно легко попасть в десятки гигабайт. Мой вопрос: как можно переписать определенный набор байтов в двоичном файле, используя C #, не имея дело со всем файлом?

Ответы [ 2 ]

3 голосов
/ 02 апреля 2012

Вы используете FileStream - это позволит вам установить позицию в файле и перезаписать в этом месте.

В этот момент вам необходимо убедиться, что файлзакрыто, и видео по-прежнему не записывается на него, иначе вы можете получить нарушение блокировки.

1 голос
/ 02 апреля 2012

Если вы имеете дело с видеозаписью, то есть с очень большими файлами, то нет другого выбора, кроме Файлы с отображением в памяти .Если ваша логика ориентирована на поиск потока, это не будет самым легким принятием в вашем коде.Но, между прочим, это был бы лучший выбор, imo.

Вот хороший пример: Программирование файлов с отображением в памяти с помощью .NET Framework

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...