# Ordner erstellen



## SyncIT (6. August 2007)

Servus!
wir haben folgendes Problem! wir wollen einen Ordner erstellen! dazu verwenden wir _mkdir! das klappt auch schön und gut, wenn wir schreiben

_mkdir("Name");
allerdings wird der ordner dann in dem ordner erstellt, wo die exe datei liegt! wir wollten eigentlich, dass der ordner immer in "eigene dateien" erstellt wird!
 haben jetz schon so einiges versucht, mit System::Environment::SpecialFolder.... etc!

im moment haben wir folgendes versucht:
_mkdir:Environment::GetFolderPath(System::Environment::SpecialFolder:rogramFiles)+ "\\NeuerOrdner");

in der hoffnung dass er dann wenigsten in Programmfiles den neuen ordner erstellt! da bekommen wir aber die ganze zeit folgende fehlermeldung:

error C2664: '_mkdir': Konvertierung des Parameters 1 von 'System::String ^' in 'const char *' nicht möglich

hoffe uns kann da jemand weiterhelfen!


----------



## Hallasas (6. August 2007)

Hallo, die "Eigene Dateien" kann man so herausfinden:

```
//...
#include <sstream>
using namespace std;
//...
char pfad[MAX_PATH];
SHGetSpecialFolderPath( NULL, pfad, CSIDL_PERSONAL /* Eigene Dateien */, false);

stringstream pfad2;
pfad2 << pfad << "\\MeinOrder";

_mkdir(pfad2.str().c_str());
```

Ich habe es nicht getestet, aber es sollte funktionieren.

Gruß

//Edit:
Hier einmal :
SHGetSpecialFolderPath und die CSIDL


----------



## SyncIT (6. August 2007)

hmmm, ,geht irgendwie nicht.
bekommen immer folgende fehlermeldungen:

error C2065: 'MAX_PATH': nichtdeklarierter Bezeichner
error C2065: 'CSIDL_PERSONAL': nichtdeklarierter Bezeichner
error C3861: "SHGetSpecialFolderPath": Bezeichner wurde nicht gefunden.
error C2228: Links von ".c_str" muss sich eine Klasse/Struktur/Union befinden.

wir tun uns echt schwer. sollen hier nen projekt für die uni machen und haben nichts mit an die hand bekommen. in den vorlesungen haben wir nur mit cout's rumgebastelt und noch nen paar schleifen. und jetzt haben wir keine ahnung wie wir das machen sollen...


----------



## deepthroat (6. August 2007)

Hi.

Offensichtlich verwendet ihr das .NET Framework mit dem Visual Studio und C++/IL.

Da könntent ihr die CreateDirectory Methode der Directory Klasse aus dem System.IO Namensraum verwenden. Siehe http://msdn2.microsoft.com/de-de/library/system.io.directory.createdirectory(VS.80).aspx


```
System::IO::Directory::CreateDirectory(::Environment::GetFolderPath(System::Environment::SpecialFolder::ProgramFiles)+ "\\NeuerOrdner");
```

Für Fragen das .NET Framework betreffend gibt es eigentlich ein spezielles Forum (obwohl das immer eine zweischneidige Sache ist, da ihr ja auch eine mit C++ verwandte Sprache benutzt...)

Gruß


----------



## SyncIT (6. August 2007)

supaaaaaaa! vielen vielen dank! jetz ham wa den dreh raus!! *freu*


----------

