diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index b77806e..b2ca7c0 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -640,9 +640,11 @@ QString QDir::canonicalPath() const { const QDirPrivate* d = d_ptr.constData(); if (d->fileEngine.isNull()) { + qDebug() << __FUNCTION__ << "d->fileEngine==0"; QFileSystemEntry answer = QFileSystemEngine::canonicalName(d->dirEntry, d->metaData); return answer.filePath(); } + qDebug() << __FUNCTION__ << "asking fileengine"; return d->fileEngine->fileName(QAbstractFileEngine::CanonicalName); } @@ -1520,7 +1522,11 @@ bool QDir::isReadable() const */ bool QDir::exists() const { - return d_ptr->exists(); + qDebug() << __FUNCTION__ << path() << "MIS" << d_ptr->metaData.missingFlags(QFileSystemMetaData::ExistsAttribute); + bool d= d_ptr->exists(); + + qDebug() << __FUNCTION__ << path() << d << "MIS" << d_ptr->metaData.missingFlags(QFileSystemMetaData::ExistsAttribute); + return d; } /*! diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 4dc6f64..3cea2fa 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -497,6 +497,7 @@ QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, //static QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry, QFileSystemMetaData &data) { + qDebug() << __FUNCTION__ << data.missingFlags(QFileSystemMetaData::ExistsAttribute); if (data.missingFlags(QFileSystemMetaData::ExistsAttribute)) QFileSystemEngine::fillMetaData(entry, data, QFileSystemMetaData::ExistsAttribute); @@ -865,6 +866,8 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM // for all members used by fillFindData(). bool ok = ::GetFileAttributesEx((wchar_t*)fname.nativeFilePath().utf16(), GetFileExInfoStandard, reinterpret_cast(&findData)); + if (!ok) + qErrnoWarning("GetFileAttributesEx failed on %s", qPrintable(fname.nativeFilePath())); if (ok) { data.fillFromFindData(findData, false, fname.isDriveRoot()); } else { diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index cbedeb9..be52670 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -55,6 +55,7 @@ #include "qplatformdefs.h" #include +#include #include #include @@ -186,11 +187,13 @@ public: void clear() { + qDebug() << __FUNCTION__ ; knownFlagsMask = 0; } void clearFlags(MetaDataFlags flags = AllMetaDataFlags) { + qDebug() << __FUNCTION__ << flags; knownFlagsMask &= ~flags; }