Как написать супер-быстрый файл потокового кода в C #?

Я должен разделить огромный файл на множество файлов меньшего размера. Каждый из файлов назначения определяется смещением и длиной как количество байтов. Я использую следующий код:

private void copy(string srcFile, string dstFile, int offset, int length)
{
    BinaryReader reader = new BinaryReader(File.OpenRead(srcFile));
    reader.BaseStream.Seek(offset, SeekOrigin.Begin);
    byte[] buffer = reader.ReadBytes(length);

    BinaryWriter writer = new BinaryWriter(File.OpenWrite(dstFile));
    writer.Write(buffer);
}

Учитывая, что я должен вызывать эту функцию около 100 000 раз, она удивительно медленная.

Есть ли способ подключить Writer напрямую к Reader? (То есть без фактической загрузки содержимого в буфер в памяти.)

Ответы на вопрос(9)

Ваш ответ на вопрос