Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
|
#include "qfilesystemengine_p.h"
#include "qoperatingsystemversion.h"
#include "qplatformdefs.h"
#include "qsysinfo.h"
#include "qscopeguard.h"
#include "private/qabstractfileengine_p.h"
#include "private/qfiledevice_p.h"
#include "private/qfsfileengine_p.h"
#include <private/qsystemlibrary_p.h>
#include <qdebug.h>
#include "qdir.h"
#include "qdatetime.h"
#include "qfile.h"
#include "qvarlengtharray.h"
#include "qt_windows.h"
#include "qstring.h"
#include <sys/types.h>
#include <direct.h>
#include <winioctl.h>
#include <objbase.h>
#include <shlobj.h>
#include <shobjidl.h>
#include <shellapi.h>
#include <lm.h>
#include <accctrl.h>
#include <initguid.h>
#include <ctype.h>
#include <limits.h>
#include <security.h>
#include <QtCore/private/qfunctions_win_p.h>
Go to the source code of this file.
Classes | |
struct | _REPARSE_DATA_BUFFER |
class | FileOperationProgressSink |
Macros | |
#define | SECURITY_WIN32 |
#define | SPI_GETPLATFORMTYPE 257 |
#define | PATH_MAX FILENAME_MAX |
#define | _INTPTR_T_DEFINED |
#define | INVALID_FILE_ATTRIBUTES (DWORD (-1)) |
#define | REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_DATA_BUFFER, GenericReparseBuffer) |
#define | MAXIMUM_REPARSE_DATA_BUFFER_SIZE 16384 |
#define | IO_REPARSE_TAG_SYMLINK (0xA000000CL) |
#define | FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS) |
Typedefs | |
typedef INT_PTR | intptr_t |
typedef struct _REPARSE_DATA_BUFFER | REPARSE_DATA_BUFFER |
typedef struct _REPARSE_DATA_BUFFER * | PREPARSE_DATA_BUFFER |
Functions | |
QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED bool | qEnableNtfsPermissionChecks () noexcept |
bool | qDisableNtfsPermissionChecks () noexcept |
bool | qAreNtfsPermissionChecksEnabled () noexcept |
[raii] | |
static bool | toFileTime (const QDateTime &date, FILETIME *fileTime) |
static QString | readSymLink (const QFileSystemEntry &link) |
static QString | readLink (const QFileSystemEntry &link) |
static bool | uncShareExists (const QString &server) |
static bool | getFindData (QString path, WIN32_FIND_DATA &findData) |
static QByteArray | fileId (HANDLE handle) |
QByteArray | fileIdWin8 (HANDLE handle) |
static bool | tryDriveUNCFallback (const QFileSystemEntry &fname, QFileSystemMetaData &data) |
static bool | tryFindFallback (const QFileSystemEntry &fname, QFileSystemMetaData &data) |
static bool | mkDir (const QString &path, SECURITY_ATTRIBUTES *securityAttributes, DWORD *lastError=nullptr) |
static bool | rmDir (const QString &path) |
static bool | createDirectoryWithParents (const QString &nativeName, SECURITY_ATTRIBUTES *securityAttributes, bool shouldMkdirFirst=true) |
static QDateTime | fileTimeToQDateTime (const FILETIME *time) |
Variables | |
static QBasicAtomicInt | qt_ntfs_permission_lookup_v2 = Q_BASIC_ATOMIC_INITIALIZER(0) |
#define _INTPTR_T_DEFINED |
Definition at line 60 of file qfilesystemengine_win.cpp.
#define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS) |
Definition at line 103 of file qfilesystemengine_win.cpp.
Referenced by readSymLink().
#define INVALID_FILE_ATTRIBUTES (DWORD (-1)) |
Definition at line 64 of file qfilesystemengine_win.cpp.
Referenced by QFSFileEnginePrivate::init(), and tryFindFallback().
#define IO_REPARSE_TAG_SYMLINK (0xA000000CL) |
Definition at line 100 of file qfilesystemengine_win.cpp.
Referenced by readSymLink().
#define MAXIMUM_REPARSE_DATA_BUFFER_SIZE 16384 |
Definition at line 97 of file qfilesystemengine_win.cpp.
Referenced by readSymLink().
#define PATH_MAX FILENAME_MAX |
Definition at line 47 of file qfilesystemengine_win.cpp.
Referenced by QFileSystemEngine::canonicalName(), QFileSystemEngine::currentPath(), QLockFilePrivate::processNameByPid(), and qAppFileName().
#define REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_DATA_BUFFER, GenericReparseBuffer) |
Definition at line 93 of file qfilesystemengine_win.cpp.
#define SECURITY_WIN32 |
Definition at line 37 of file qfilesystemengine_win.cpp.
#define SPI_GETPLATFORMTYPE 257 |
Definition at line 43 of file qfilesystemengine_win.cpp.
typedef INT_PTR intptr_t |
Definition at line 57 of file qfilesystemengine_win.cpp.
typedef struct _REPARSE_DATA_BUFFER * PREPARSE_DATA_BUFFER |
typedef struct _REPARSE_DATA_BUFFER REPARSE_DATA_BUFFER |
|
static |
Definition at line 1489 of file qfilesystemengine_win.cpp.
References createDirectoryWithParents(), QString::left(), mkDir(), and QDir::separator().
|
inlinestatic |
Definition at line 1008 of file qfilesystemengine_win.cpp.
References info, QByteArray(), and qsnprintf().
Referenced by fileIdWin8(), QSSGMesh::MeshInternal::MultiMeshInfo::isValid(), QSSGMesh::MeshInternal::MeshDataHeader::isValid(), QQsbCollection::readEndHeader(), and QFile::rename().
QByteArray fileIdWin8 | ( | HANDLE | handle | ) |
Definition at line 1023 of file qfilesystemengine_win.cpp.
References fileId(), QByteArray::number(), and QByteArray().
|
inlinestatic |
Definition at line 1856 of file qfilesystemengine_win.cpp.
References time, and QTimeZone::UTC.
Referenced by QFileSystemMetaData::accessTime(), QFileSystemMetaData::birthTime(), QFileSystemMetaData::metadataChangeTime(), and QFileSystemMetaData::modificationTime().
|
inlinestatic |
Definition at line 747 of file qfilesystemengine_win.cpp.
Referenced by tryFindFallback().
|
inlinestatic |
Definition at line 1442 of file qfilesystemengine_win.cpp.
Referenced by createDirectoryWithParents().
|
related |
[raii]
[free-funcs]
Definition at line 407 of file qfilesystemengine_win.cpp.
References QT_IF_DEPRECATED_SINCE, qt_ntfs_permission_lookup, and qt_ntfs_permission_lookup_v2.
|
related |
Definition at line 400 of file qfilesystemengine_win.cpp.
References QT_IF_DEPRECATED_SINCE, qt_ntfs_permission_lookup, and qt_ntfs_permission_lookup_v2.
|
related |
Definition at line 393 of file qfilesystemengine_win.cpp.
References QT_IF_DEPRECATED_SINCE, qt_ntfs_permission_lookup, and qt_ntfs_permission_lookup_v2.
|
static |
Definition at line 696 of file qfilesystemengine_win.cpp.
References QString::fromWCharArray(), MAX_PATH, QFileSystemEntry::nativeFilePath(), Q_UNUSED, and ret.
|
static |
Definition at line 644 of file qfilesystemengine_win.cpp.
References QRegularExpression::CaseInsensitiveOption, QString::fromWCharArray(), FSCTL_GET_REPARSE_POINT, IO_REPARSE_TAG_SYMLINK, MAX_PATH, MAXIMUM_REPARSE_DATA_BUFFER_SIZE, QFileSystemEntry::nativeFilePath(), Q_ASSERT, Q_CHECK_PTR(), and QString::replace().
|
inlinestatic |
Definition at line 1455 of file qfilesystemengine_win.cpp.
|
inlinestatic |
Definition at line 607 of file qfilesystemengine_win.cpp.
References d, date, QTime::hour(), Qt::LocalTime, and QDate::year().
|
static |
Definition at line 1284 of file qfilesystemengine_win.cpp.
References QString::indexOf(), and uncShareExists().
|
static |
Definition at line 1336 of file qfilesystemengine_win.cpp.
References getFindData(), and INVALID_FILE_ATTRIBUTES.
|
static |
Definition at line 734 of file qfilesystemengine_win.cpp.
References Qt::CaseInsensitive, server, and Qt::SkipEmptyParts.
Referenced by tryDriveUNCFallback().
|
static |
Definition at line 388 of file qfilesystemengine_win.cpp.
Referenced by qAreNtfsPermissionChecksEnabled(), qDisableNtfsPermissionChecks(), and qEnableNtfsPermissionChecks().