我在linux工作。 在具有statfunction的linux中,我们可以提取文件的权限。
同样,我们如何才能在windows中提取文件的权限。
msdn中的_stat函数声明在stat缓冲区中设置了权限位。 但它并没有给出如何提取它们。
http://msdn.microsoft.com/en-us/library/14h5k7ff%28VS.71%29.aspx
另一种获得过程的argc和argv的方法
如何在windows Phone上开发Google地图
C ++如何检查Outlook进程是否已经在运行
为什么queryPerformanceFrequency是由1024除以TSC频率,为什么不只是TSC?
windows Store JavaScript背景audiotassk close()方法?
用C ++获取用户的login会话
AJAX请求在windows上不能并行运行
Eclipse使用错误的Java家庭
将文件types关联到正在运行的应用程序
来自Python的Win32长path
结构统计结构在windows上不包含任何文件权限信息。 windows的安全性更为复杂,你需要GetfileSecurity()来检索文件的DACL。 这很少在windows程序中完成,您通常会让windows评估有效的权限并处理“您无法做到”错误返回。 GetLastError()中的ERROR_ACCESS_DENIED。
windows使用ACL(访问控制列表)来控制对文件(或其他内核对象)的访问。 您可以使用GetfileSecurity获取文件的ACL(您需要DACL,而不是SACL)。 然后你可以通过GetEffectiveRightsFromAcl获得实际的权限(权限)。
这有一个竞争条件,所以它不是一个好主意。 特别是,在检索DACL的时间和尝试对文件执行 *** 作的时间之间,DACL可能已经更改,因此检索到的内容不再正确。
我从你提供的链接中读到,在_stat和朋友中实现的文件权限是UNIX专用的,并且没有用于NTFS,FAT和其他windows文件系统。
我想你会有更多的运气使用经典的FindFirstfile和相关函数读取文件权限。 你将需要处理这里描述的函数返回的句柄。这些是非常难以移植的,但是由于C ++没有文件系统支持,它们是唯一不错的选择。
MSDN没有像它应该那样多的超链接,你需要搜索一下来找到_stat Structure st_mode FIEld Constants 。
在Unix和windows上,只能获得文件的基本权限,而不能访问控制列表。 由于windows使用ACL很多, _stat不会给你很多有用的信息。 您需要使用本地windows API函数来获取ACL。
总结以上是内存溢出为你收集整理的在Windows中查找文件的权限全部内容,希望文章能够帮你解决在Windows中查找文件的权限所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)