Dateien mit C++ kopieren
-
Hallo,
ich möchte eine datei kopieren aber ohne api. es soll eine eigene kopierengine werden die den status und die geschwindikeit anzeigt. außerdem möchte ich noch ausschneiden oder löschen.
wie stelle ich das am besten an? gibt es vielleicht eine alternative? also doch winapi? oder sollt ich mir das doch lieber aus dem köpf schlagen?danke schon mal im voraus
mfg Sven BurowPS: stört euch bitte an dem schreibstill. ihr wisst ja programmierer sind faul
-
also ich bin ja aufgrund deiner signierung gewillt nicht zu antworten, aber ich will mal nicht so sein.
wenn ich dein problem richtig verstanden habe, ist die lösung die anwendung der iostream-klassen. es wäre aber sehr müßig die verwendung der klassen hier zu beschreiben. in jedem halbwegs guten c++ buch wird das erkärt. aus dem kopf schlagen würde ich mir das nicht, da es vielleicht nur eine halbe stunde programmierung bedarf, um das problem zu lösen.
was meinst du mit "außerdem möchte ich noch ausschneiden oder löschen". meinst du dateien ausschneiden oder löschen wie in einem dateimanager oder innerhalb der datei?
"ihr wisst ja programmierer sind faul", dass sollten die aber nicht sein. ein gut struckturierter code ist schon das halbe programm.
-
Zitat aus der FAQ:
Das dritte Beispiel zeigt wie man eine Datei kopieren kann.
Erforderliche Header: <fstream>C/C++ Code:
using namespace std;
// Quelldatei
ifstream FileInCopy("d:\\cdtemp\\uncle_kracker-follow_me.mp3", ios::binary);// Zieldatei
ofstream FileOutCopy("d:\\cdtemp\\uncle_kracker-follow_me.mp3.bak", ios::binary);if (FileInCopy)
FileOutCopy << FileInCopy.rdbuf();
-
hm... danke erstmal
wie soll ich das vertstehen?
also ich bin ja aufgrund deiner signierung gewillt nicht zu antworten, aber ich will mal nicht so sein
was meinst du mit "außerdem möchte ich noch ausschneiden oder löschen". meinst du dateien ausschneiden oder löschen wie in einem dateimanager oder innerhalb der datei?
ja
aber wie zeige ich den Status an? zb. 1,5 MB von 72 oder so
und mit dem faul meine ich meinen schreibstill (mir ist heute irgendwie nach kleinschrift)
ich finde es aber toll das überhaupt jemand geantwortet hat
mfg Sven Burow
-
Du kannst im reinen Standard C++ nicht wirklich viel machen.
Einen Portablen Dateimanager schaffst Du nicht. Hierfür würde ich Proxyklassen schreiben die eine einheitliche Schnitstelle für ein Dateisystem bieten.
ggf. ist sowas in boost schon drinne. (details ? sry, ich hab mir die immer noch nicht angeschaut bzw. compiliet bekommen)
-
naja, ich kann linux halt net leiden, aber dass ist ein anderes thema und mir ist übrigens immer nach kleinschrift zu mute, macht das leben einfacher.
und das mit dem fortschritt ist eigentlich kein problem. du kannst mit der methode seekg den dateizeiger auf das ende der datei zeigen lassen. dann fragtst du seine position in byte ab. dann hast du die dateigröße. (geht bestimmt auch leichter, weiß aber net wie). und dann musst du eben die geschriebenen bytes mitzählen und kannst so den fortschritt berechnen. aber von einem kompletten dateimanager würde ich dir auch abraten, obwohl man mit der iostream schon ne menge anfangen kann.