PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit mkdir?



Fl0
05.03.2011, 11:10
Hallo Jungs ;) , vor langer Zeit habe ich mich an dieses geniale Forum gewandt :)

Nun habe ich wieder ein Problem mit meinem C++ Code.


#include <iostream>
#include <string> //<<-- Header
#include <windows.h>
#include <direct.h>


using namespace std;

int main()
{
cout << "Test tool" << endl;


char laufwerk;
cout << "Laufwerk: " << endl;
cin >> laufwerk;

string ZielDatei = "X:\\TEST/Ordner1/File.txt";
ZielDatei[0] = laufwerk;

cin.get();

cout << 1 << "Installiere..\n";
cout << "1= beenden" << endl;

const char* Zeiger = ZielDatei.c_str();
mkdir("X:\\TEST//Ordner1", Zeiger, FALSE ); //ordner1 im TEST Ordner anlegen

const char* Zeiger = ZielDatei.c_str();
CopyFileA( "Ordner1/File.txt", Zeiger, FALSE ); // datei kopieren-im Ordner1 ist file.txt enthalten

cin.get();
return 0;
}
Also ich will einen ordner anlegen, dann den laufwerksbuchstaben eingeben, und dann die file.txt datei dorthin kopieren.

Klappt aber nicht, Fehler:
too many arguments to function `int mkdir(const char*)' Also irgendwas stimmt mit mkdir nicht.

X = Laufwerksbuchstabe

Könntet ihr mir bitte helfen?

Würde mich sehr freuen weil ich auf dieses Forum vertraue :)

Lg und Vielen Dank :)

Mog
05.03.2011, 11:42
Dein Code:

mkdir("X:\\TEST//Ordner1", Zeiger, FALSE );

Deine Fehlermeldung:

too many arguments to function `int mkdir(const char*)'

mkdir nimmt einen Parameter.
Du übergibst drei Parameter.

Fl0
05.03.2011, 11:44
Könnest du mir bitte sagen wie der Code dann lautet?

Vielen Vielen Dank und Lg.

drunken monkey
05.03.2011, 12:26
Könnest du mir bitte sagen wie der Code dann lautet?

Vielen Vielen Dank und Lg.
Allerhöchstwahrscheinlich mkdir("X:\\TEST//Ordner1");. o_O"

Ineluki
05.03.2011, 15:29
const char* Zeiger = ZielDatei.c_str();
mkdir("X:\\TEST//Ordner1", Zeiger, FALSE ); //ordner1 im TEST Ordner anlegen

const char* Zeiger = ZielDatei.c_str();
CopyFileA( "Ordner1/File.txt", Zeiger, FALSE ); // datei kopieren-im Ordner1 ist file.txt enthalten

cin.get();


Hier hast du einfach zu viel Copy & Paste gemacht.
Um einen Ordner anzulegen, braucht die Funktion nur zu wissen, wie der Ordner heissen soll - inklusive Pfad, damit das OS weiss, wo er angelegt werden soll.
Um eine Datei zu kopieren brauchst du allerdings Quelle, Ziel und einen Boolschen Ausdruck, ob das Kopieren abgebrochen werden soll, falls die Datei exitiert.

Auch hast du noch einen fehler, dass du deine String Constante doppelt deklarierst. Du brauchst an der Stelle gar keine extra konstante.

So saehe es dann wahrscheinlich richtig aus. Habs aber nicht getestet.




mkdir("X:\\TEST//Ordner1"); //ordner1 im TEST Ordner anlegen
// datei kopieren - im Quelle ist file.txt enthalten
CopyFileA( "Quelle/File.txt", ZielDatei.c_str(), FALSE );

cin.get();