# dateien verschieben



## hallle-bob (8. Juni 2004)

hallo erst mal...

also ich hab etz durch mein studium n paar grundkenntnisse in c++ gesammelt und hab mir jetzt mein erstes kleines projekt vorgenommen... grob gesagt gehts eigentlich nur darum verschiedene dateipakete aus einem ordner in einen anderen zu kopieren und etwaige schon vorhandene dateien zu überschreiben. klar könnte man sowas auch mit ner batch-datei bewerkstelligen, aber das ganze soll ja auch nach was aussehen  
weitere features sollten sein, eine auswahl des benötigten pfadnamens und eine backup-funktion der überschriebenen dateien...

so - nun zu meinem problem...
ich hab absolut keine ahnung wie (mit welchen befehlen/funktionen) sowas zu bewerkstelligen is... ich will jetzt nicht dass mir irgendwer nen fertigen source-code liefert - ich brauch eigentlich nur anregungen auf deren basis ich das ganze procedere lernen kann...

thx schon mal für jegliche hilfe...
so long...


----------



## Daniel Toplak (8. Juni 2004)

Also da du uns weder sagst mit welchen Libraries du programmierst, noch auf welchem Betriebssystem, verweiße ich dich mal auf die C-Runtime Funktionen.
Die wichtigste die du da brauchen wirst ist _unlink().
Dmit löscht man eine Datei.
Zum verschieben, das würde ich so machen:
- Datei im Quellpfad binär einlesen (z.B. 64Kb-Blöcke)
- dann im Zielpfad eine neue Datei mit gleichem Namen anlegen
- die Blöcke binär rausschreiben
- Quelldatei löschen.

Gruß Homer


----------



## Lampe (8. Juni 2004)

http://pronix.de/modules/C/openbook/c_programmierung_20_2.php


Da du ja auch mit Verzeichnissen arbeiten musst.


----------



## oglimmer (9. Juni 2004)

Die boost-library kapselt File/Directory Zugriffe im STL-Stil

Siehe: http://www.boost.org/libs/filesystem/doc/index.htm

Nach meiner Erfahrung ist die boost-lib immer ein Hinseher wert.


----------



## Dudadida (9. Juni 2004)

Die Einträge in der FAT-Tabelle ändern *g*...


----------



## Daniel Toplak (9. Juni 2004)

> Die Einträge in der FAT-Tabelle ändern *g*...


Auch ne Möglichkeit und dazu bestimmt noch verdammt schnell. 

Gruß Homer


----------



## Martin Schroeder (17. Juni 2004)

In Windows kannst du die Headerdatei "winbase.h" einbinden und dann die Funktion "Copyfile(char *existing, char *new, bool fail)" benutzen.


----------



## frager (3. Juli 2004)

Sorry, dass ich einen alten Thread "wiederbelebt" habe, aber ich finde das könnten einige gebrauchen. Und zwar kann man die Dateien mit der Funktion "int rename(const char *, const char *)" verschieben.
Bsp.:

```
#include <stdio.h>
...
rename("C:\\abc\\datei.txt", "C:\\def\\datei.txt");
```
Beim Erfolg ist der return-Wert 0, ansonsten ungleich 0 (z.B. wenn die Datei bereits existiert)
Und der angegebene Ordner muss auch existieren.


----------

