Как написать супер-быстрый файл потокового кода в 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? (То есть без фактической загрузки содержимого в буфер в памяти.)