Problem beim Kopieren von Dateien mittels ifstream



  • Schönen Guten Morgen,

    habe ein Problem beim Kopieren von Dateien mittels ifstream. Ich kopiere die Dateien dabei von einem Netzwerklaufwerk auf die lokale Festplatte. Das kopieren an sich funktioniert reibungslos, es tritt jedoch ein Problem auf wenn eine kleine Bandbreite (z.B. 3-5 kB) besteht.

    std::ifstream ifs( source, std::ios::binary);
    

    ^^^ Dieser Aufruf zum Öffnen der Datei benötigt dann bei großen Dateien inakzeptabel lange und bricht teilweise (falls noch eine langsamere Verbindung besteht) komplett ab (schätze mal ein timeout bzw. max. Dauer wird erreicht).

    Wie lässt sich denn ein solcher Kopiervorgang mit niedrigen Bandbreiten am besten realisieren? (Muss auch nicht mittels ifstream und ofstream sein, wichtig ist nur das Binär kopiert wird)

    Codestück des momentanen Kopiervorgangs:

    ...
    // Datei kopieren ==================================
    std::ifstream ifs(sourceFileLink.c_str(), std::ios::binary);
    std::ofstream ofs(destinationFileLink.c_str(), std::ios::binary	);			
    
    while( (size = ifs.read(buffer,1024).gcount())  && !m_abortFlag ) 
    { 
        ofs.write(buffer,size);
    }
    ...
    

    Bin dankbar für jede Hilfe.

    Gruß
    Daniel



  • mmh, schade. Keiner eine Idee?


Anmelden zum Antworten