QByteArray bei großen Datenmengen
Verfasst: 13. August 2006 10:39
Hallo liebes Forum
ich habe folgende Frage:
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 ?
Gruß Arne
ich habe folgende Frage:
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.
Code: Alles auswählen
bool CheckSumm(const QString& source, const QString& dest)
{
bool check = false;
QString sourceCheckSumme, destCheckSumme;
// Checksumme für source
QFile sourceFile(source);
if (sourceFile.open(IO_ReadOnly) == true) {
sourceCheckSumme = qtMD5(sourceFile.readAll());
sourceFile.close();
}
// Checksumme für dest
QFile destFile(dest);
if (destFile.open(IO_ReadOnly) == true) {
destCheckSumme = qtMD5(destFile.readAll());
destFile.close();
}
// Checksummen vergleichen
if ( (destCheckSumme.isEmpty() == false) &&
(destCheckSumme == sourceCheckSumme) )
{
check = true;
}
return check;
}
Gruß Arne