Слишком долгое создание FileStream - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Мне необходимо отправлять по сети большие файлы (от 1.4гб до 5гб). Проблема заключается в слишком долгом создании FileStream для больших файлов...
Листинг программы
  1. using (var fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read))
  2. {
  3. byte Resp = new byte[MAXBUFFER];
  4. if (fileStream.Length > Resp.LongLength)
  5. {
  6. long fullsize = fileStream.Length;
  7. do
  8. {
  9. fileStream.Read(Resp, 0, Resp.Length);
  10. await networkStream.WriteAsync(Resp, 0, Resp.Length);
  11. fullsize -= Resp.Length;
  12. if (fullsize <= Resp.Length)
  13. {
  14. fileStream.Read(Resp, 0, (int)fullsize);
  15. await networkStream.WriteAsync(Resp, 0, (int)fullsize);
  16. break;
  17. }
  18. }
  19. while (true);
  20. }
  21. else
  22. {
  23. fileStream.Read(Resp, 0, (int)fileStream.Length);
  24. await networkStream.WriteAsync(Resp, 0, (int)fileStream.Length);
  25. }
  26. Resp = null;
  27. fileStream.Dispose();
  28. }
Подскажите, есть возможность сразу записывать байты файла в сетевой потом networkStream? (либо получать байты в буфер параллельно с созданием стрима)

Решение задачи: «Слишком долгое создание FileStream»

textual
Листинг программы
  1. using (var fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read))
  2. {
  3.    await fileStream.CopyToAsync(networkStream).ConfigureAwait(false);
  4. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.533 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут