是不是只有win7系统下才有目录读写权限控制,XP下面没有呢?还是都有?
怎么判断一个硬盘目录是否可以被读写呢? 有没有方法设置一个目录的读写权限?
等待高人指教
怎么判断一个硬盘目录是否可以被读写呢? 有没有方法设置一个目录的读写权限?
等待高人指教
解决方案 »
- 进程间通信时传送的结构体数据中包含字符串指针时的问题
- 请问vc CHotKeyCtrl控键 如何改变颜色?
- CSplitterWnd分割三个view问题
- 急!!抓屏后用socket发送数据奇慢!
- 高手请帮忙:使用ATL编写了一个IE工具条,上面有一个EditBox,输入中文出现乱码!
- 如何将CScrollView中绘图场景做成打印纸页面形式?就象打印预览一样?
- 读文件的问题
- 用DAO获得key field的name
- 如何:::使程序在不同显示分辨率下,工作正常。。。。。
- vc中fopen函数的问题
- Debug下不会报错,Release下会报错,该怎么解决啊?
- 谁知道VC2005里怎么添加32位真彩色的ICO资源?
这个只能获取到FAT文件系统的吧,如果是NTFS系统呢?还请指教
SetNamedSecurityInfo
GetNamedSecurityInfo应该可以搞定吧?
目前就是采用的这种方法的,但是目前还是出现一些bug,不知道为什么
BOOL AddEveryoneAccessToFile(LPTSTR szFileName)
{
cout<<"提权的目录为:"<<StrUtils::WStrToStr(szFileName).c_str()<<endl; BOOL bResult = FALSE;
PACL pOldDacl=NULL;
PACL pNewDacl=NULL;
DWORD dRet;
EXPLICIT_ACCESS eia;
PSECURITY_DESCRIPTOR pSID=NULL;
dRet = GetNamedSecurityInfo(szFileName,SE_FILE_OBJECT,DACL_SECURITY_INFORMATION,NULL,NULL,&pOldDacl,NULL,&pSID);// 获取文件的DACL
if(dRet==ERROR_SUCCESS)
{
//创建一个ACE,允许Everyone组成员完全控制对象,并允许子对象继承此权限
ZeroMemory(&eia,sizeof(EXPLICIT_ACCESS));
BuildExplicitAccessWithName(&eia,_T("Everyone"),GENERIC_ALL,SET_ACCESS,SUB_CONTAINERS_AND_OBJECTS_INHERIT);
// 将新的ACE加入DACL
dRet = SetEntriesInAcl(1,&eia,pOldDacl,&pNewDacl);
if(dRet==ERROR_SUCCESS)
{
// 更新文件的DACL
dRet = SetNamedSecurityInfo(szFileName,SE_FILE_OBJECT,DACL_SECURITY_INFORMATION,NULL,NULL,pNewDacl,NULL);
if(dRet==ERROR_SUCCESS)
{
bResult=TRUE;
}
}
} //释放DACL和SID
if(pNewDacl)LocalFree(pNewDacl);
if(pSID)LocalFree(pSID);
return bResult;
}我这么给目录提权,为什么还是不能在相应的目录下面创建文件呢?请教高手!!!在线等哦!
Tools->Folder Options->View->Advanced Settings去掉小勾 Use simple file sharing (Recommened) OFF
然后OK
这样Folder 属性就会有 Security 项代码实现就不知道了。。
有吗,是文件夹右键菜单--》属性 里面的Tools吗?没有这个吧,要NTFS文件系统才有的,FAT32系统没有安全权限一说。我把安全权限和文件属性混在一起了