Слишком долгое создание FileStream - C#
Формулировка задачи:
Доброго времени суток. Мне необходимо отправлять по сети большие файлы (от 1.4гб до 5гб). Проблема заключается в слишком долгом создании FileStream для больших файлов...
Подскажите, есть возможность сразу записывать байты файла в сетевой потом networkStream? (либо получать байты в буфер параллельно с созданием стрима)
using (var fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read)) { byte Resp = new byte[MAXBUFFER]; if (fileStream.Length > Resp.LongLength) { long fullsize = fileStream.Length; do { fileStream.Read(Resp, 0, Resp.Length); await networkStream.WriteAsync(Resp, 0, Resp.Length); fullsize -= Resp.Length; if (fullsize <= Resp.Length) { fileStream.Read(Resp, 0, (int)fullsize); await networkStream.WriteAsync(Resp, 0, (int)fullsize); break; } } while (true); } else { fileStream.Read(Resp, 0, (int)fileStream.Length); await networkStream.WriteAsync(Resp, 0, (int)fileStream.Length); } Resp = null; fileStream.Dispose(); }
Решение задачи: «Слишком долгое создание FileStream»
textual
Листинг программы
using (var fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read)) { await fileStream.CopyToAsync(networkStream).ConfigureAwait(false); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д