Hallo,
Ich muss so schnell wie möglich den Hashwert aus ca. 8-10.000 Dateien (jeweils ~4MB groß) erzeugen. Mein erster Test mit dem extra Programm md5sum war ernüchternd. Knappe 2 Minuten dauert es insgesamt. Geht das ganze vielleicht auch schneller und vorallem, hat Qt4 eine eigene Funktion dafür (Etwas md5 ähnliches konnte ich in der Doku nicht finden).
MfG,
Alex
Hashwert von Files generieren
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Hier meine Funktion um nur geänderte Header für Q.../Free zu kopieren. Ist GPL.
Code: Alles auswählen
void copyFile( const QString& src, const QString& dest )
{
#ifdef DEBUG_LINK_INCLUDES
fprintf( stdout, "copyFile( %s, %s )\n", src.latin1(), dest.latin1() );
#endif
QFile s( src );
QFile d( dest );
if ( onlyNew ) {
QFileInfo src_info( src );
QFileInfo dst_info( dest );
if ( ( dst_info.exists() ) && ( src_info.size() == dst_info.size() ) ) {
s.open( IO_ReadOnly | IO_Translate );
d.open( IO_ReadOnly | IO_Translate );
QByteArray s_ba = s.readAll();
if ( qtMD5( s_ba ) == qtMD5( d.readAll() ) ) {
s.close();
d.close();
if ( verbose )
fprintf( stdout, "File %s isn't changed - skipping\n",
QDir::convertSeparators( src ).ascii() );
return ;
}
if ( dryrun )
return ;
s.close();
d.close();
d.open( IO_WriteOnly | IO_Truncate | IO_Translate );
d.writeBlock( s_ba );
d.close();
return ;
}
}
if ( verbose )
fprintf( stdout, "copying %s to %s\n", QDir::convertSeparators( src ).ascii(),
QDir::convertSeparators( dest ).ascii() );
if ( dryrun )
return ;
s.open( IO_ReadOnly | IO_Translate );
d.open( IO_WriteOnly | IO_Truncate | IO_Translate );
d.writeBlock( s.readAll() );
s.close();
d.close();
}
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung