16 Stimmen

Effizientester Weg zum Vergleich eines Memorystreams mit einer Datei C# .NET

Ich habe einen MemoryStream, der die Bytes eines PNG-kodierten Bildes enthält, und möchte prüfen, ob es ein exaktes Duplikat dieser Bilddaten in einem Verzeichnis auf der Festplatte gibt. Der erste offensichtliche Schritt ist, nur nach Dateien zu suchen, die mit der exakten Länge übereinstimmen, aber danach würde ich gerne wissen, was der effizienteste Weg ist, um den Speicher mit den Dateien zu vergleichen. Ich bin nicht sehr erfahren im Umgang mit Streams.

Ich hatte ein paar Gedanken zu diesem Thema:

Erstens, wenn ich einen Hash-Code für die Datei erhalten könnte, wäre es (vermutlich) effizienter, Hash-Codes zu vergleichen, als jedes Byte des Bildes. Ebenso könnte ich nur einige der Bytes des Bildes vergleichen, was eine "hinreichend genaue" Antwort liefern würde.

Und dann könnte ich natürlich auch einfach den gesamten Stream vergleichen, aber ich weiß nicht, wie schnell das gehen würde.

Wie kann ich einen MemoryStream am besten mit einer Datei vergleichen? Byte für Byte in einer for-Schleife?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X