Qt设置权限不设置权限 [英] Qt setPermissions not setting permisions
本文介绍了Qt设置权限不设置权限的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
系统: Windows XP Pro SP2。 以管理员身份在管理员帐户中运行。 最新的Qt框架和文件。
//Get file permissions of ref file.
QFile::Permissions qpPerm1;
qpPerm1 = QFile::permissions("E:/dir1/dir2/File1.txt");
//Set file permissions of a file.
bool isOK=0;
isOK = QFile::setPermissions("E:/dir4/dir5/file2.txt",qpPerm1);
qout << "Perms set? " << isOK << endl;
返回值为真...声称是它设置了权限,但它没有。 需要说明的是,file2.txt是file1.txt的副本。 我将file1的权限设置为某个值,但在运行代码后,file2.txt具有不同的权限。
推荐答案
原来的writtenQt不支持更改Windows上组的访问权限。若要完全控制文件权限,请尝试使用位于安全描述符中的访问控制列表。
要检索文件或目录对象的安全描述符, 调用GetNamedSecurityInfo或GetSecurityInfo函数。去改变 文件或目录对象的安全描述符,请调用 SetNamedSecurityInfo或SetSecurityInfo函数。
我认为在您的情况下,可以尝试第一个文件中的GetNamedSecurityInfo,并将其传递给第二个文件的SetNamedSecurityInfo。
您还可以分配空的ACL,它将重置所有组权限并为每个人授予完全访问权限:
SetNamedSecurityInfoA("C:file.txt", SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, NULL, NULL);
这篇关于Qt设置权限不设置权限的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文