有没有办法在 QFileSystemModel (c++) 中更新文件的权限?在允许用户使用 qtreeview 重命名模型中列出的文件之前,我确保该文件已从源代码控制中签出。此时文件不再是只读的,但模型仍然认为它是只读的。如何在不丢失树的展开/折叠状态的情况下强制模型更新文件的权限?
谢谢!
更新:签出文件后,该文件已被标记为可写。不过,模型仍然没有意识到这一变化。
QFile file(path.c_str());
QFileDevice::Permissions perms = file.permissions();
if (perms & QFile::WriteUser)
{
// Is already true
}
可以肯定的是,我继续使用
file.setPermissions(file.permissions() | QFile::WriteUser);
没有运气更改模型中该文件报告的权限。
更新:
int perms = fsModel->data(index, QFileSystemModel::Roles::FilePermissions).value<int>();
if (perms & QFile::WriteUser)
{
int i = 0;
}
注意:上述权限永远不会设置 QFile::WriteUser 标志,除非文件在模型创建之前是可写的。