Позорный вопрос, но чтото я заработался (туплю). Не могу вспомнить как записать поток в файл ...
Есть поток pStream as System.IO.Stream, как его записать в файл с именем C:\file.dat ?
Dim file As New FileStream("C:\file.dat", FileMode.Create)
Dim stream As New MemoryStream
Dim streamBytes() As Byte = stream.ToArray
file.Write(streamBytes, 0, streamBytes.Length)
Как ты получаешь этот pStream?А как в MemoryStream передать мой pStream?
Dim _BufferSize As Integer = (1024 * 16)
Dim _Buffer() As Byte = New Byte((_BufferSize) - 1) {}
Dim _Count As Integer = pStream.Read(_Buffer, 0, _BufferSize)
Using _FileStream As New FileStream(_Path & _File & ".dat", FileMode.Create)
Do While (_Count > 0)
_FileStream.Write(_Buffer, 0, _Buffer.Length)
_Count = pStream.Read(_Buffer, 0, _BufferSize)
Loop
End Using
Метод SaveAs делает практически тоже самое, что и предложил Williams. Так что не парься и пользуй SaveAs.Но это явно не самый оптимальный вариант (накладные расходы) ...
А в чем ты узрел накладные расходы?
В твоём случае - да, есть лишняя работа, а в SaveAs идет просто запись байтового массива(принятый файл) в FileStream безо всякой лишней перегонки.Ну как минимум копирование одного потока в другой через буфер.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7