Pergunta

Saudações!

Eu estou tentando verificar diretório write-permissões de dentro de um programa do Windows MFC / ATL usando C ++. Minha primeira suposição é usar a função _access C-padrão, por exemplo:.

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

Mas, aparentemente, no Windows 2000 e XP, _access não pode determinar as permissões de diretório. (Ou seja, a guia Segurança nas propriedades de diálogo quando você clique com o botão direito em um diretório no Explorer) Assim, há uma maneira elegante para determinar write-permissões de um diretório no Windows 2000 / XP usando qualquer uma das bibliotecas do Windows C ++? Se sim, como?

Graças

Evan

Foi útil?

Solução

Você pode chamar CreateFile com acesso GENERIC_WRITE para verificar isso. http://msdn.microsoft.com/en-us /library/aa363858(VS.85).aspx

Não é uma biblioteca C ++ mas conta ainda tão elegante porque diretamente faz o que quiser ...

Outras dicas

Use sec api. Você pode perguntar sobre Adv. Win32 API newsgroup: notícia: //194.177.96.26/comp.os.ms-windows.programmer.win32 onde muitas vezes tem sido discutido (código C / C ++)

Há muitos funções de segurança do Windows , embora eu não chamaria seu uso particularmente elegante. Eu recomendaria GetNamedSecurityInfo como uma solução geral, mas a solução CreateFile tem uma certa simplicidade e franqueza que eu também podem apreciar. :)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top