Nach dem Kopieren (im Rahmen eines Backups) prüfe ich mit einem Checksummenverfahren ob Ziel und Quelldatei identisch sind. Hierzu verwende ich die Qt - Funktion Qtmd5.
Was passiert eigentlich mit dem Aufruf QFile::readAll(), wenn die Größe der Datei den Arbeitsspeicher übersteigt (bei einer Datenbankdatei durchaus möglich) ? Natürlich kann ich dass alles in einem try-catch-modus laufen lassen, aber gewußt hätte ich es schon gerne. Hat jemand eine Idee ?
Meinst du nicht dass es etwas ineffizient ist erst alles in den RAM zu laden und dann die Prüfsumme zu berechnen? Stell dir mal vor ein kleines MD5-Tool brächte 4,7GB RAM um den Hash eines DVD-Images zu berechnen. Am besten du berechnest den Hash in kleineren Blöcken, das geht zwar nicht mir der Qt-Funktion aber es gibt ja genug freie MD5-Implementierungen im Netz.