При сохранении двоичного файла из MemoryStream в сетевой путь периодически сохраняется файл 0 байт - PullRequest
0 голосов
/ 25 февраля 2020

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

using (var writer = new BinaryWriter(new FileStream(filePath, FileMode.Create)))
using (var reader = new BinaryReader(stream))
{
    var chunkSize = 1024;

    var chunkCount = (int)reader.BaseStream.Length / chunkSize;

    var chunks = Enumerable.Range(0, chunkCount)
                            .Select(_ => reader.ReadBytes(chunkSize));

    chunks.ForEach(c => writer.Write(c));

    writer.Write(reader.ReadBytes((int)reader.BaseStream.Length % chunkSize));

    writer.Close();
    reader.Close();
}

Есть ли какой-либо возможный способ, которым приведенный выше код может в конечном итоге сохранить нулевой файл байтов? Это плохая идея, чтобы сохранить в сети напрямую и не использовать метод «copy from temp»?

...