Pregunta

¡Saludos!

Estoy tratando de verificar los permisos de escritura del directorio desde un programa MFC / ATL de Windows usando C ++. Mi primera suposición es usar la función _access estándar C, por ejemplo:

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

Pero aparentemente en Windows 2000 y XP, _access no puede determinar los permisos de directorio. (es decir, la pestaña Seguridad en el cuadro de diálogo Propiedades cuando hace clic con el botón derecho en un directorio en el Explorador) Entonces, ¿hay alguna manera elegante de determinar los permisos de escritura de un directorio en Windows 2000 / XP usando alguna de las bibliotecas de Windows C ++? Si es así, ¿cómo?

Gracias

Evan

¿Fue útil?

Solución

Puede llamar a CreateFile con acceso GENERIC_WRITE para verificar esto. http://msdn.microsoft.com/en-us /library/aa363858(VS.85).aspx

No es una biblioteca C ++, pero aún cuenta como elegante porque hace directamente lo que quieres ...

Otros consejos

Use sec api. Puedes preguntar en Adv. Grupo de noticias Win32 api: noticias: //194.177.96.26/comp.os.ms-windows.programmer.win32 donde se ha discutido a menudo (código C / C ++)

Hay muchas funciones de seguridad de Windows , aunque no llamaría su uso particularmente elegante. Recomendaría GetNamedSecurityInfo como una solución general, pero la solución CreateFile tiene una cierta simplicidad y franqueza que también puedo apreciar. :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top