QNtfsPermissionCheckGuard 类

QNtfsPermissionCheckGuard 类是一个 RAII 类,用于管理 NTFS 权限检查。 更多信息...

头文件 #include <QNtfsPermissionCheckGuard>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core
Qt 6.6

公共函数

(since 6.6) boolqAreNtfsPermissionChecksEnabled()
(since 6.6) boolqDisableNtfsPermissionChecks()
(since 6.6) boolqEnableNtfsPermissionChecks()

详细描述

出于性能原因,默认情况下,QFileQFileInfo 和相关类不执行 NTFS 文件系统的完整所有权和权限(ACL)检查。在此类任何实例的生命周期内,将更改此默认值并执行高级检查。这提供了一种安全且简单的方法来管理启用和禁用此对默认行为的更改。

示例

void complexFunction()
{
    QNtfsPermissionCheckGuard permissionGuard;  // check is enabled

    // do complex things here that need permission check enabled

}   // as the guard goes out of scope the check is disabled

此类仅适用于 Windows。

qt_ntfs_permission_lookup

在 Qt 6.6 之前,用户必须直接操作全局变量 qt_ntfs_permission_lookup。但是,这是一个非原子的全局变量,因此容易发生数据竞态。

因此,自 Qt 6.6 起弃用了变量 qt_ntfs_permission_lookup

成员函数文档

QNtfsPermissionCheckGuard::QNtfsPermissionCheckGuard()

创建一个守卫并调用函数 qEnableNtfsPermissionChecks

[noexcept] QNtfsPermissionCheckGuard::~QNtfsPermissionCheckGuard()

销毁守卫并调用函数 qDisableNtfsPermissionChecks

相关非成员

[noexcept, since 6.6] bool qAreNtfsPermissionChecksEnabled()

检查 NTFS 文件系统的权限检查状态。如果已启用检查,则返回 true

此函数仅在 Windows 上可用,并使直接操作 qt_ntfs_permission_lookup 变得过时。

注意: 此函数的线程安全性仅在没有并发更新到qt_ntfs_permission_lookup的情况下保持。

注意:此函数是线程安全的

此函数在Qt 6.6版本中引入。

[noexcept, since 6.6] bool qDisableNtfsPermissionChecks()

禁用NTFS文件系统的权限检查。如果检查已禁用(表示没有更多用户),则返回true

此函数仅在 Windows 上可用,并使直接操作 qt_ntfs_permission_lookup 变得过时。

这是一个低级别函数,必须与早前的一次qEnableNtfsPermissionChecks调用匹配。请考虑使用QNtfsPermissionCheckGuard类。

注意: 此函数的线程安全性仅在没有并发更新到qt_ntfs_permission_lookup的情况下保持。

注意:此函数是线程安全的

此函数在Qt 6.6版本中引入。

[noexcept, since 6.6] bool qEnableNtfsPermissionChecks()

启用NTFS文件系统的权限检查。如果在调用此函数之前检查已启用(表示还有其他用户),则返回true

此函数仅在 Windows 上可用,并使直接操作 qt_ntfs_permission_lookup 变得过时。

这是一个低级别函数,请考虑使用QNtfsPermissionCheckGuard类。

注意: 此函数的线程安全性仅在没有并发更新到qt_ntfs_permission_lookup的情况下保持。

注意:此函数是线程安全的

此函数在Qt 6.6版本中引入。

© 2024 Qt公司。此处包含的文档贡献属于其各自的版权所有者。此处提供的文档是根据由自由软件基金会发布的GNU自由文档许可版1.3的条款许可的。Qt及其相关商标为芬兰的Qt公司和/或在全世界其他国家的商标。所有其他商标均为其各自所有者的财产。