byte array stream crc check

733 views Asked by At

I have a small problem with crc checking in c#, im needing to read a file which contains the crc value in the last 8 bytes, how im doing it now is like

  • using filestream with filemode open
  • calculate stream length minus 8 bytes
  • stream.read(buffer,0,streamlength minus 8 bytes)
  • crc computehash passed in buffer

this leaves the remaining 8bytes which I compare against the crcvalue

the problem ive got is that it works ok for small files, but obviously I get a system out of memory exception for bigger files, I know computehash will take a stream but its either pass in full stream which means I cant get the remaining bytes.

Is there a better way of doing this?

kindest regards

1

There are 1 answers

1
MSB On

Providing a code snippet will prove to be a great help for us that are trying to help you. While I understand what you are saying I can never be sure that I do get what you did without reading your code.

Not being sure what you want to do with the file I suggest you also look at the MemoryStream class. One quick advantage of a MemoryStream is that there is no need to create temporary buffers and files in an application meaning that you could actually save on memory.

You can apply your current method in a similar fashion to MemoryStream and see if that works.

Info on MemoryStream: http://msdn.microsoft.com/en-us/library/system.io.memorystream%28v=vs.110%29.aspx