Skip to content

Instantly share code, notes, and snippets.

@bjartwolf
Last active September 4, 2015 07:46
Show Gist options
  • Save bjartwolf/429cb3bd56d7998f0f68 to your computer and use it in GitHub Desktop.
Save bjartwolf/429cb3bd56d7998f0f68 to your computer and use it in GitHub Desktop.
overflowing on length...
let fileAsSeq filename =
let bufferlength = 4096
let fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
let rec infStream = seq {
let buffer = Array.zeroCreate<byte> bufferlength
let bytesRead = fs.Read(buffer,0,bufferlength)
if not (bytesRead = bufferlength) then
let smallerbuffer = Array.zeroCreate<byte> bytesRead
Array.Copy(buffer,0,smallerbuffer,0,bytesRead)
yield! smallerbuffer
fs.Dispose()
else
yield! buffer
yield! infStream
}
{ file = fs; stream = infStream }
fileAsSeq @"e:\Steam\Steam.dll" |> fun (x) -> x.stream |> Seq.length
@bjartwolf
Copy link
Author

Seq should maybe have Seq.longLength?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment