首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用QFile().setPermissions()设置读写权限

用QFile().setPermissions()设置读写权限
EN

Stack Overflow用户
提问于 2016-01-06 14:35:15
回答 2查看 10.1K关注 0票数 6

在我的QT5.5.1程序中,我必须将我的配置文件权限从只读更改为读-写.我有两个问题:

  1. 我如何设置这个权限?我尝试过:QFile(path).setPermissions(QFile::ReadWrite);,但是它抛出了这个编译器错误: C2664:'bool::setPermissions(const QString &,QFileDevice::Permissions)‘:无法将参数1从'QIODevice::OpenModeFlag’转换为'QFileDevice::Permissions‘没有用户定义的转换操作符,否则不能调用运算符。
  2. 如何获得特定文件的权限?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-06 14:41:29

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

代码语言:javascript
复制
QFile(path).setPermissions(QFileDevice::ReadOwner | QFileDevice::WriteOwner);

若要获取文件的权限,请使用QFileQFile方法

代码语言:javascript
复制
QFileDevice::Permissions p = QFile(path).permissions();

它返回所有文件权限或一起编辑。因此,要测试是否设置了某个权限,可以执行以下操作:

代码语言:javascript
复制
if (p & QFileDevice::ReadOwner)
{
}
票数 7
EN

Stack Overflow用户

发布于 2016-01-06 14:50:30

正如您得到的编译器错误所述,您将一个QIODevice::OpenModeFlag枚举值传递给setPermissions()QIODevice::OpenModeFlag用于描述设备打开的模式。

这里需要的是来自QFileDevice::权限枚举的值的组合。

代码语言:javascript
复制
QFile(path).setPermissions(QFileDevice::ReadOwner | QFileDevice::WriteOwner);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34635653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档