Código para verificação write-permissões para diretórios em Win2K / XP
-
10-07-2019 - |
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
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. :)