在某些场景下,需要判断当前程序对某文件或文件夹是否写权限。比如没有管理员权限,是不能向系统敏感路径(比如C:\Windows\System32、C:\Program Files等)创建文件或者改写这些路径中的文件。
我们可以通过以下代码判断对目标文件或者文件夹是否有写权限:
// 将要检测的权限GENERIC_XXXXXX传递给dwGenericAccessMask,可检测对
// 文件或者文件夹的权限
BOOL CanAccessFile( CUIString strPath, DWORD dwGenericAccessMask )
{
CUIString strLog;
strLog.Format( _T("[CanAccessFile]strPath: %s, dwGenericAccessMask: %d"), strPath, dwGenericAccessMask );
WriteUpdateLog( strLog );
DWORD dwSize = 0;
PSECURITY_DESCRIPTOR psd = NULL;
SECURITY_INFORMATION si = OWNER_SECURITY_INFORMATION |
GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION;
WriteUpdateLog( _T("[CanAccessFile]GetFileSecurity - NULL") );
// 获取文件权限信息结构体大小
BOOL bRe
在一些情况下,程序需要确保拥有对特定文件或目录的写权限。特别是涉及系统敏感路径时,如C:WindowsSystem32、C:Program Files等,必须具备管理员权限才能进行写操作。本文提供了一段代码,用于判断程序是否具有目标路径的写权限,例如,调用此功能以检查对C:WindowsSystem32的写权限。
订阅专栏 解锁全文
3010

被折叠的 条评论
为什么被折叠?



