c – 使用QFile()设置读写权限.setPermissions()

在我的Qt 5.5.1程序中,我必须将配置文件权限从只读更改为读写…我有2个问题:

>我如何设置此权限?我试过:QFile(path).setPermissions(QFile :: ReadWrite);但它会抛出此编译器错误:

C2664: ‘bool QFile::setPermissions(const QString
&,QFileDevice::Permissions)’ : cannot convert argument 1 from
‘QIODevice::OpenModeFlag’ to ‘QFileDevice::Permissions’ No
user-defined-conversion operator available that can perform this
conversion, or the operator cannot be called

>如何获取特定文件的权限?

解决方法:

正确的方法是使用正确的枚举,从QFileDevice::Permissions-enum中选择一个值(我相信这是Qt5的变化). F.e:

QFile(path).setPermissions(QFileDevice::ReadOwner | QFileDevice::WriteOwner);

要获取文件的权限,请使用QFile的.permissions()方法:

QFileDevice::Permissions p = QFile(path).permissions();

这将OR-ed一起返回所有文件权限.因此,要测试是否设置了某个权限,您可以执行以下操作:

if (p & QFileDevice::ReadOwner)
{
}
上一篇:[编程题]机器人跳跃问题


下一篇:域控制器中的FSMO角色