# Ordner anlegen



## DeChecka (23. April 2005)

Hi!
Ich möchte mit C++ einen Ordner anlegen, in den dann diverse Dateien reingespeichert werden.
Wie kann ich diesen Ordner anlegen und wie die Dateien dann dort reinbringen?
Kann mir jemand helfen?

PS: Ich habe zwar im Forum Beiträge zum Thema gefunden, kann aber nicht allzu viel damit anfangen...
Da ist zum Beispiel die Rede von mkdir("Pfad") und CreateDirectory()...
Folgender Link ist zu CreateDirectory() angegeben: Klick hier! 
Allerdings funktioniert der leider nicht!
Kann ich 'nen ganz normalen Befehl vielleicht aus der Standartbibliothek nehmen?

MfG
      DeChecka


----------



## Tobias K. (23. April 2005)

moin



```
CreateDirectory("ordnername", NULL);
```

Nicht vergessen die windows.h mit einzubinden.


mfg
umbrasaxum


----------



## Tobias K. (23. April 2005)

moin


Hier nochmal der Ausschnitt aus der MSDN:

```
CreateDirectory

The CreateDirectory function creates a new directory. If the underlying file system supports security on files and directories, the function applies a specified security descriptor to the new directory.

To specify a template directory, use the CreateDirectoryEx function.


BOOL CreateDirectory(
  LPCTSTR lpPathName,
  LPSECURITY_ATTRIBUTES lpSecurityAttributes
);

Parameters
lpPathName 
[in] Pointer to a null-terminated string that specifies the path of the directory to be created. 
There is a default string size limit for paths of 248 characters. This limit is related to how the CreateDirectory function parses paths.

To extend this limit to 32,767 wide characters, call the Unicode version of the function and prepend "\\?\" to the path. For more information, see Naming a File.


Windows Me/98/95:  This string must not exceed MAX_PATH characters. 

lpSecurityAttributes 
[in] Pointer to a SECURITY_ATTRIBUTES structure. The lpSecurityDescriptor member of the structure specifies a security descriptor for the new directory. If lpSecurityAttributes is NULL, the directory gets a default security descriptor. The ACLs in the default security descriptor for a directory are inherited from its parent directory. 
The target file system must support security on files and directories for this parameter to have an effect. (This is indicated when GetVolumeInformation returns FS_PERSISTENT_ACLS.)

Return Values
If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.
```


mfg
umbrasaxum


----------



## DeChecka (24. April 2005)

Thanks!  
Wenn ich jetzt noch die erstellten Dateien in diesen Ordner ablegen will, wie mache ich das?
Übrigens legt C++ die ganzen Ordner und Dateien standardmäßig in "Eigene Dateien" bei mir an...
Muss man das so hinnehmen, oder kann man das auch ändern?

MfG
      DeChecka


----------



## Tobias K. (24. April 2005)

moin


Du könntest den absoluten Pfad angeben. Vorher holst du dir den Pfad zu deinem Programm und machst das in abhängigkeit dazu. Wie du den Pfad ermittelst wurde hier einige male beschrieben.

Wie und wo erstellst du denn die Dateien?


mfg
umbrasaxum


----------



## DeChecka (24. April 2005)

Joa, danke!
Also hab zwar bis jetzt noch nichts gefunden, was mir das Ermitteln des Pfades ausreichend verständlich (für mich*g) beschreibt, aber ich werd mal weitersuchen...

Die Dateien lasse ich vom Programm anlegen. Also mit strcat und ofstream und so weiter.
Und irgendwie sind die dann immer in "Eigene Dateien" drin...

MfG
      DeChecka


----------



## Tobias K. (24. April 2005)

moin


Hmm normalerweise wird das im gleichen Pfad angelegt, in dem das Programm läuft.

```
int main( int argc, char *argv[ ] )
```

Wenn dein main so aussieht, steht in argv[0] der Pfad zu deinem Programm.
Und ich glaub in argv[1] steht der Name der Exe des Programms.


mfg
umbrasaxum


----------



## DeChecka (24. April 2005)

Hm, ok, das mit argv[0] geht, das mit argv[1]  nicht bei mir...

Aber ich hab grad rausgefunden, dass ich mit SetCurrentDirectory das Verzeichnis ja festlegen kann...

Also von daher ist mir für's erste geholfen

Danke!

MfG
      DeChecka


----------

