Слив потока байта за байтом будет очень медленным.
если у вас есть .NET 4.0, то самым простым способом будет:
open System.IO
let readAllBytes (s : Stream) =
let ms = new MemoryStream()
s.CopyTo(ms)
ms.ToArray()
иначе вам нужно воспроизвести функциональность CopyTo вручную
let readAllBytes (s : Stream) =
let ms = new MemoryStream()
let buf = Array.zeroCreate 8192
let rec impl () =
let read = s.Read(buf, 0, buf.Length)
if read > 0 then
ms.Write(buf, 0, read)
impl ()
impl ()