Je voudrais savoir comment créer en C++ sous windows un répertoire ( system ("mkdir") ????) ...Comment tester que le répertoire existe déjà et ne rien faire dans ce cas là ?
Merci.
Version imprimable
Je voudrais savoir comment créer en C++ sous windows un répertoire ( system ("mkdir") ????) ...Comment tester que le répertoire existe déjà et ne rien faire dans ce cas là ?
Merci.
La CRT microsoft expose la fonction _mkdir(), tandis que l'API Win32 expose CreateDirectory().
Je rajouterais que pour tester si le répertoire existe déjà, tu peut utiliser la fonction _stat() qui permet d'indiquer à la fois si l'"élément" est présent sur le disque et si c'est un répertoire (ou bien un fichier, un pipe, ...).
Attention : à chaque fois que tu fais un test sur l'état d'un système multitache, au moment où tu as le résultat il peut être déjà obsolète.
De façon générale, il est inutile, redondant et créateur de faux espoirs d'utiliser access avant d'ouvrir un fichier pour vérifier si on le droit d'y accéder. Le plus simple, et plus sûr est d'essayer d'y accéder directement. Je ne comprends pas ceux qui s'embêtent avec access.
C'est aussi pour ça qu'il faut utiliser open avec O_CREAT|O_EXCL pour être sûr de créer un fichier, et pas risquer d'ouvrir un fichier existant. (Et donc, il faut utiliser open et pas creat pour créer un fichier.)
Concernant _mkdir, je citerai la doc MS :
donc pas besoin de tester l'existence d'un fichier de même nom avant (enfin, d'après ce que je comprends; il n'est pas explicitement décrit ce que _mkdir fait si un fichier de même nom existe déjà - mais je pense que c'est suffisamment clair).Citation:
Envoyé par MSDN : _mkdir, _wmkdir