Wie realisiert man Dateioperationen?



  • Hallo. Mal eine Frage: Gibt es für Dateioperationen, wie verschieben, kopieren, umbenennen, löschen etc. eigentlich spezielle C++-Funktionen oder muss ich dazu WinExec nehmen?



  • Löschen und Umbenennen/Verschieben kannst du eine Datei mit den C-Funktionen remove() bzw. rename(), Kopieren kannst du, indem du die Datei (komplett oder in Etappen) einliest und an die Zielposition schreibst:

    //mit C-Funktionen:
    #define BUF_SIZE 512;//der Wert ist fast beliebig wählbar
    void copy_file(const char* src, const char* tgt)
    {
      FILE* sf = fopen(src,"rb");
      FILE* tf = fopen(tgt,"wb");
      char buffer[BUF_SIZE];
      int buf_len;
      while((buf_len=fread(buffer,BUF_SIZE,1,sf)>0)
        fwrite(buffer,buf_len,1,tf);
      fclose(sf);fclose(tf);
    }
    
    //mit C++-Techniken:
    void copy_file(const string& src, const string& tgt)
    {
      ifstream sf(src.c_str(),ios::in|ios::binary);
      ofstream tf(tgt.c_str(),ios::out|ios::binary);
      tf<<sf.rdbuf();
    }
    


  • Danke.



  • Oder auf die Winapi zurückgreifen.



  • Klar, das geht auch (zumindest solange du nicht unter Unix compilieren willst ;)) - aber Hans hat ja nach Ansätzen ohne die WinAPI gefragt.


Anmelden zum Antworten