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.