CreateDirectory - Rückgabe unbedingt prüfen? (war: CreateDirectory)
-
Braucht es für die API CreateDirectory eigentlich eine if/else anweisung? Also muss man abfragen ob das verzeichnis bereits erstellt wurde wenn man es erstellen möchte? Grundsätzlich liefert die bool funktion einfach zero oder nonzero zurück, jedoch spielt es glaub keine rolle wenn man ein verzeichniss erstellt das bereits vorhanden ist, wird dann einfach nicht neu erstellt. Oder? Also kann man das ruhig ohne if/else anweisung machen?
Edit:
Bitte aussagekrätige Überschriften wahlen. Danke!
-
Hallo
MSDN schrieb:
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Probier doch einfach aus, was als Ergebnis bei einem vorhanden Verzeichnis als Rückgabe kommt.
Außerdem gehört das ins WinAPI-Forum.
bis bald
akari
-
Stimmt, habe mich im forum vertan, sorry

-
Dieser Thread wurde von Moderator/in Jansen aus dem Forum VCL/CLX (Borland C++ Builder) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
akari schrieb:
MSDN schrieb:
If the function fails, the return value is zero. To get extended error information, call GetLastError.
Probier doch einfach aus, was als Ergebnis bei einem vorhanden Verzeichnis als Rückgabe kommt.
Man braucht nur weiter zu lesen:
MSDN schrieb:
Possible errors include the following: ERROR_ALREADY_EXISTS
http://msdn.microsoft.com/library/en-us/fileio/fs/createdirectory.asp
-
also spielt es keine rolle oder? kann nichts passieren wird einfach nicht erstellt?
-
Wäre komisch, wenn was passieren würde (Löschen des Verzeichnis-Inhalts o.ä.)...

-
Aber ausschliessen würdest du es nicht oder?

-
Du kannst mir FindFirstFile testen ob ein Verzeichnis existiert.
Du sollest immer prüfen ob ein Verzeichnis erstellet werden konnte.
Evtl. hat der Benutzer nicht die Rechte ein Verzeichnis zu erstellen ...
Oder es existiert, der Benutzer hat aber keine Rechte darin rumzukritzeln ...
Beste Grüße
RB
-
Grundsätzlich geht es mir nur um datenverlust. Aber sollte eigentlich nichts passieren. Zumal ja wie in der MSDN beschrieben einfach das verzeichniss nicht erstellt werden kann und der rückgabe wert ERROR_ALREADY_EXISTS ist. Aber kann man dann auch 100% sicher sein?

-
BOOL result = CreateDirectory(...); if(result == 0 && GetLastError() != ERROR_ALREADY_EXISTS) { // schwerer fehler }