在我的QT5.5.1程序中,我必须将我的配置文件权限从只读更改为读-写.我有两个问题:
QFile(path).setPermissions(QFile::ReadWrite);,但是它抛出了这个编译器错误:
C2664:'bool::setPermissions(const QString &,QFileDevice::Permissions)‘:无法将参数1从'QIODevice::OpenModeFlag’转换为'QFileDevice::Permissions‘没有用户定义的转换操作符,否则不能调用运算符。发布于 2016-01-06 14:41:29
正确的方法是使用正确的枚举,从QFileDevice::Permissions-enum中选择一个值(我相信这是一个Qt5更改)。F.e.:
QFile(path).setPermissions(QFileDevice::ReadOwner | QFileDevice::WriteOwner);若要获取文件的权限,请使用QFile的QFile方法
QFileDevice::Permissions p = QFile(path).permissions();它返回所有文件权限或一起编辑。因此,要测试是否设置了某个权限,可以执行以下操作:
if (p & QFileDevice::ReadOwner)
{
}发布于 2016-01-06 14:50:30
正如您得到的编译器错误所述,您将一个QIODevice::OpenModeFlag枚举值传递给setPermissions(),QIODevice::OpenModeFlag用于描述设备打开的模式。
这里需要的是来自QFileDevice::权限枚举的值的组合。
QFile(path).setPermissions(QFileDevice::ReadOwner | QFileDevice::WriteOwner);https://stackoverflow.com/questions/34635653
复制相似问题