Datei in Ordner kopieren
-
Hallo wie kann ich eine bestimmte Datei in einen Ordner kopieren ?
Bei cin>>datei; geben ich z.b ein datei.txt
Bei cin>>laufwerk; gebe ich ein c:\ordner\Nun soll die datei.txt in den c:\ordner\ kopiert werden aber es funktioniert nicht.
Es funktioniert nur wenn ich z.b. bei cin>>laufwerk; eingebe c:\ordner\datei.txt
Wie kann man kopieren ohne da einen Name für Festlegen zu müssen ?
Die Datei soll einfach nur in den ordner kopiert werden hat da wer eine Idee ?
#include <iostream> #include <fstream> #include <vcl> using namespace std; int main(int argc, char* argv[]) { string datei; string laufwerk; cout<<"Zu kopierende Datei eingeben: "; cin>>datei; cout<<"Laufwerk eingeben: "; cin>>laufwerk; CopyFile( datei.c_str(), laufwerk.c_str() ,0); return 0; }
-
Du musst den Zieldateinamen auch mit angeben.
CopyFile( datei.c_str(), (laufwerk+datei).c_str() ,0);Setzt aber voraus, dass datei kein Verzeichnis beinhaltet.
-
a. CopyFile kommt hier aus der VCL. Falsches Stockwerk, ist ein paar weiter oben:
http://www.c-plusplus.net/forum/viewforum-var-f-is-2.htmlb. Ich bin mir ziemlich sicher, obwohl ich die Funktion von VCL nicht kenne, dass CopyFile folgendes erwartet:
1. Parameter: Vollständiger oder relativer Pfad zum File, welches kopiert werden soll.
2. Parameter: Vollständiger oder relativer Pfad zum File, wo es hinkopiert werden soll.
3. Parameter: Wahrscheinlich eine bool Variable, ob das File beim Zielpfad überschrieben werden soll, wenn vorhanden.Wichtig ist, dass Parameter 1 und 2 beide einen Pfad zu einem File erwarten. Ein Ordner reicht nicht.
Übrigens, da Pfadangaben Leerzeichen enthalten können, solltest du dir mal die Funktion
std::getlineanschauen:
http://www.cplusplus.com/reference/string/getline/Grüssli
-
Dravere schrieb:
a. CopyFile kommt hier aus der VCL. Falsches Stockwerk, ist ein paar weiter oben:
Nein, das ist WinAPI.

-
Braunstein schrieb:
Dravere schrieb:
a. CopyFile kommt hier aus der VCL. Falsches Stockwerk, ist ein paar weiter oben:
Nein, das ist WinAPI.

Keine Ahnung woher VCL es nimmt, kann sein, dass sie
CopyFileeinfach durchreichen. Aber ich sehe nirgendwo ein#include <windows.h>sondern nur ein#include <vcl>. Daher bin ich davon ausgegangen, dass CopyFile hier womöglich aus der VCL stammt.Grüssli
-
vcl.h inkludiert normalerweise die windows.h. Deswegen wird kann die Funktion verwendet werden, sie stammt aber aus der WinAPI.
http://msdn.microsoft.com/en-us/library/aa363851.aspx
#include <vcl> ist sowieso falsch, wenn schon dann #include <vcl.h>
-
#include <vcl>
funktioniert [ getestet mit Borland C++ Builder 6 bei RAD Studios 2007 da ging es glaub ich nur mit #include <windows.h> ] aber auch wo ist denn da der untschied zwischen:#include <vcl>
und
#include <vcl.h>