7#include "qplatformdefs.h"
9#include <QtCore/qt_windows.h>
19 : nativePath(
entry.nativeFilePath())
20 , dirPath(
entry.filePath())
21 , findFileHandle(INVALID_HANDLE_VALUE)
28 if (nativePath.endsWith(u
".lnk"_s) && !QFileSystemEngine::isDirPath(dirPath,
nullptr)) {
33 if (!nativePath.endsWith(u
'\\'))
37 if (!dirPath.endsWith(u
'/'))
45 if (findFileHandle != INVALID_HANDLE_VALUE)
46 FindClose(findFileHandle);
51 bool haveData =
false;
52 WIN32_FIND_DATA findData;
54 if (findFileHandle == INVALID_HANDLE_VALUE && !uncFallback) {
57 DWORD dwAdditionalFlags = 0;
58 dwAdditionalFlags = 2;
63 findFileHandle = FindFirstFileEx((
const wchar_t *)nativePath.utf16(), FINDEX_INFO_LEVELS(infoLevel), &findData,
64 FINDEX_SEARCH_OPS(searchOps), 0, dwAdditionalFlags);
65 if (findFileHandle == INVALID_HANDLE_VALUE) {
66 if (nativePath.
startsWith(
"\\\\?\\UNC\\"_L1)) {
68 if (parts.count() == 4 && QFileSystemEngine::uncListSharesOnServer(
69 "\\\\"_L1 + parts.at(2), &uncShares)) {
70 if (uncShares.isEmpty())
77 if (findFileHandle == INVALID_HANDLE_VALUE && !uncFallback)
82 if (++uncShareIndex >= uncShares.count())
85 if (!FindNextFile(findFileHandle, &findData))
92 metaData.fillFromFileAttribute(FILE_ATTRIBUTE_DIRECTORY);
99 metaData.fillFromFindData(findData,
true);
QList< QByteArray > split(char sep) const
Splits the byte array into subarrays wherever sep occurs, and returns the list of those arrays.
bool startsWith(QByteArrayView bv) const
QByteArray & append(char c)
This is an overloaded member function, provided for convenience. It differs from the above function o...
static QFileSystemEntry getLinkTarget(const QFileSystemEntry &link, QFileSystemMetaData &data)
Q_AUTOTEST_EXPORT NativePath nativeFilePath() const
bool advance(QFileSystemEntry &fileEntry, QFileSystemMetaData &metaData)
QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters, const QStringList &nameFilters, QDirIterator::IteratorFlags flags=QDirIterator::FollowSymlinks|QDirIterator::Subdirectories)
\macro QT_RESTRICTED_CAST_FROM_ASCII
static QString fromWCharArray(const wchar_t *string, qsizetype size=-1)
Combined button and popup list for selecting options.
const QStringList filters({"Image files (*.png *.xpm *.jpg)", "Text files (*.txt)", "Any files (*)" })
[6]