QNtfsPermissionCheckGuard Class

The QNtfsPermissionCheckGuard class is a RAII class to manage NTFS permission checking. More...

Header: #include <QNtfsPermissionCheckGuard>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Since: Qt 6.6

Public Functions

(since 6.6) bool qAreNtfsPermissionChecksEnabled()
(since 6.6) bool qDisableNtfsPermissionChecks()
(since 6.6) bool qEnableNtfsPermissionChecks()

Detailed Description

For performance reasons, QFile, QFileInfo, and related classes do not perform full ownership and permission (ACL) checking on NTFS file systems by default. During the lifetime of any instance of this class, that default is overridden and advanced checking is performed. This provides a safe and easy way to manage enabling and disabling this change to the default behavior.

Example:

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

This class is available only on Windows.

qt_ntfs_permission_lookup

Prior to Qt 6.6, the user had to directly manipulate the global variable qt_ntfs_permission_lookup. However, this was a non-atomic global variable and as such it was prone to data races.

The variable qt_ntfs_permission_lookup is therefore deprecated since Qt 6.6.

Member Function Documentation

QNtfsPermissionCheckGuard::QNtfsPermissionCheckGuard()

Creates a guard and calls the function qEnableNtfsPermissionChecks().

[noexcept] QNtfsPermissionCheckGuard::~QNtfsPermissionCheckGuard()

Destroys the guard and calls the function qDisableNtfsPermissionChecks().

Related Non-Members

[noexcept, since 6.6] bool qAreNtfsPermissionChecksEnabled()

Checks the status of the permission checks on NTFS file systems. Returns true if the check is enabled.

This function is only available on Windows and makes the direct manipulation of qt_ntfs_permission_lookup obsolete.

Note: The thread-safety of this function holds only as long as there are no concurrent updates to qt_ntfs_permission_lookup.

Note: This function is thread-safe.

This function was introduced in Qt 6.6.

[noexcept, since 6.6] bool qDisableNtfsPermissionChecks()

Disables permission checking on NTFS file systems. Returns true if the check is disabled, meaning that there are no more users.

This function is only available on Windows and makes the direct manipulation of qt_ntfs_permission_lookup obsolete.

This is a low-level function and must (only) be called to match one earlier call to qEnableNtfsPermissionChecks(). Please consider the RAII class QNtfsPermissionCheckGuard instead.

Note: The thread-safety of this function holds only as long as there are no concurrent updates to qt_ntfs_permission_lookup.

Note: This function is thread-safe.

This function was introduced in Qt 6.6.

[noexcept, since 6.6] bool qEnableNtfsPermissionChecks()

Enables permission checking on NTFS file systems. Returns true if the check was already enabled before the call to this function, meaning that there are other users.

This function is only available on Windows and makes the direct manipulation of qt_ntfs_permission_lookup obsolete.

This is a low-level function, please consider the RAII class QNtfsPermissionCheckGuard instead.

Note: The thread-safety of this function holds only as long as there are no concurrent updates to qt_ntfs_permission_lookup.

Note: This function is thread-safe.

This function was introduced in Qt 6.6.

© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.