QNtfsPermissionCheckGuard Class

Die Klasse QNtfsPermissionCheckGuard ist eine RAII-Klasse zur Verwaltung der NTFS-Berechtigungsprüfung. Mehr...

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

Öffentliche Funktionen

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

Detaillierte Beschreibung

Aus Leistungsgründen führen QFile, QFileInfo und verwandte Klassen standardmäßig keine vollständige Eigentümer- und Berechtigungsprüfung (ACL) auf NTFS-Dateisystemen durch. Während der Lebensdauer einer Instanz dieser Klasse wird diese Vorgabe außer Kraft gesetzt und eine erweiterte Prüfung durchgeführt. Dies bietet eine sichere und einfache Möglichkeit, das Aktivieren und Deaktivieren dieser Änderung des Standardverhaltens zu verwalten.

Beispiel:

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

Diese Klasse ist nur unter Windows verfügbar.

qt_ntfs_permission_lookup

Vor Qt 6.6 musste der Benutzer die globale Variable qt_ntfs_permission_lookup direkt manipulieren. Dabei handelte es sich jedoch um eine nicht-atomare globale Variable, die anfällig für Data-Races war.

Die Variable qt_ntfs_permission_lookup ist daher seit Qt 6.6 veraltet.

Dokumentation der Mitgliedsfunktionen

QNtfsPermissionCheckGuard::QNtfsPermissionCheckGuard()

Erzeugt einen Guard und ruft die Funktion qEnableNtfsPermissionChecks() auf.

[noexcept] QNtfsPermissionCheckGuard::~QNtfsPermissionCheckGuard()

Zerstört die Wache und ruft die Funktion qDisableNtfsPermissionChecks() auf.

Verwandte Nicht-Mitglieder

[noexcept, since 6.6] bool qAreNtfsPermissionChecksEnabled()

Prüft den Status der Berechtigungsprüfungen auf NTFS-Dateisystemen. Gibt true zurück, wenn die Prüfung aktiviert ist.

Diese Funktion ist nur unter Windows verfügbar und macht die direkte Manipulation von qt_ntfs_permission_lookup überflüssig.

Hinweis: Die Thread-Sicherheit dieser Funktion gilt nur, solange es keine gleichzeitigen Aktualisierungen von qt_ntfs_permission_lookup gibt.

Hinweis: Diese Funktion ist thread-sicher.

Diese Funktion wurde in Qt 6.6 eingeführt.

[noexcept, since 6.6] bool qDisableNtfsPermissionChecks()

Deaktiviert die Berechtigungsprüfung auf NTFS-Dateisystemen. Gibt true zurück, wenn die Prüfung deaktiviert ist, was bedeutet, dass es keine weiteren Benutzer gibt.

Diese Funktion ist nur unter Windows verfügbar und macht die direkte Manipulation von qt_ntfs_permission_lookup überflüssig.

Es handelt sich um eine Low-Level-Funktion, die (nur) aufgerufen werden muss, um einem früheren Aufruf von qEnableNtfsPermissionChecks() zu entsprechen. Bitte beachten Sie stattdessen die RAII-Klasse QNtfsPermissionCheckGuard.

Hinweis: Die Thread-Sicherheit dieser Funktion gilt nur so lange, wie es keine gleichzeitigen Aktualisierungen von qt_ntfs_permission_lookup gibt.

Hinweis: Diese Funktion ist thread-sicher.

Diese Funktion wurde in Qt 6.6 eingeführt.

[noexcept, since 6.6] bool qEnableNtfsPermissionChecks()

Aktiviert die Berechtigungsprüfung auf NTFS-Dateisystemen. Gibt true zurück, wenn die Prüfung bereits vor dem Aufruf dieser Funktion aktiviert war, was bedeutet, dass es andere Benutzer gibt.

Diese Funktion ist nur unter Windows verfügbar und macht die direkte Manipulation von qt_ntfs_permission_lookup überflüssig.

Dies ist eine Low-Level-Funktion, bitte beachten Sie stattdessen die RAII-Klasse QNtfsPermissionCheckGuard.

Hinweis: Die Thread-Sicherheit dieser Funktion gilt nur so lange, wie es keine gleichzeitigen Aktualisierungen von qt_ntfs_permission_lookup gibt.

Hinweis: Diese Funktion ist thread-sicher.

Diese Funktion wurde in Qt 6.6 eingeführt.

© 2025 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.