Question

Salutations!

J'essaie de vérifier les autorisations d'écriture des répertoires à partir d'un programme Windows MFC / ATL à l'aide de C ++. Ma première hypothèse est d’utiliser la fonction _access C-standard, par exemple:

if (_access("C:\mydir", 2) == -1)
   // Directory is not writable.

Mais apparemment, sous Windows 2000 et XP, _access ne peut pas déterminer les autorisations de répertoire. (c.-à-d. l'onglet Sécurité de la boîte de dialogue Propriétés lorsque vous cliquez avec le bouton droit de la souris sur un répertoire de l'explorateur). Existe-t-il donc un moyen élégant de déterminer les autorisations d'écriture d'un répertoire dans Windows 2000 / XP à l'aide de l'une des bibliothèques Windows C ++? Si oui, comment?

Merci

Evan

Était-ce utile?

La solution

Vous pouvez appeler CreateFile avec l’accès GENERIC_WRITE pour vérifier ceci. http://msdn.microsoft.com/en-us /library/aa363858(VS.85).aspx

Ce n’est pas une bibliothèque C ++ mais elle a tout de même une élégance car elle fait ce que vous voulez ...

Autres conseils

Utilisez sec api. Vous pouvez demander sur Adv. Groupes de discussion api Win32: news: //194.177.96.26/comp.os.ms-windows.programmer.win32 où il a souvent été discuté (code C / C ++)

Il existe de nombreuses fonctions de sécurité Windows . , même si je n’appellerais pas leur utilisation particulièrement élégante. Je recommanderais GetNamedSecurityInfo comme solution générale, mais la solution CreateFile a une certaine simplicité et une certaine franchise que je peux également apprécier. :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top