Quiero comparar dos archivos binarios. Uno de ellos ya está almacenado en el servidor con un CRC32 precalculado en la base de datos desde que lo almacené originalmente.Comparar archivos binarios en C#
Sé que si el CRC es diferente, entonces los archivos son definitivamente diferentes. Sin embargo, si el CRC es el mismo, no sé si los archivos sí lo están. Por lo tanto, estoy buscando una manera agradable y eficiente de comparar las dos corrientes: una del archivo publicado y otra del sistema de archivos.
No soy un experto en transmisiones, pero soy consciente de que podría dispararme fácilmente en el pie aquí en lo que respecta al uso de la memoria.
Requiere conunt1 == count2 podría ser impreciso, ya que Stream.Read puede devolver un bloque que tenga una longitud inferior al conteo de bytes solicitado. ver http://msdn.microsoft.com/en-us/library/vstudio/system.io.stream.read(v=vs.100).aspx – Karata
Gracias por la solución Mehrdad. ¿Necesita las llamadas a Take? Intenté solo 'if (! Buffer1.SequenceEqual (buffer2))' y parece que funciona. –
@Ozgur funciona, pero es menos eficiente y no tiene mucho principio IMO. –