diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index f5c27e7472..f55cf6b5f9 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -662,7 +662,10 @@ QString QDir::path() const QString QDir::absolutePath() const { Q_D(const QDir); - return d->resolveAbsoluteEntry(); + if (!d->fileEngine) + return d->resolveAbsoluteEntry(); + + return d->fileEngine->fileName(QAbstractFileEngine::AbsoluteName); } /*! diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index 5c9ae5df70..aa1bde6a4a 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -773,7 +773,9 @@ QString QFileInfo::fileName() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return ""_L1; - return d->fileEntry.fileName(); + if (!d->fileEngine) + return d->fileEntry.fileName(); + return d->fileEngine->fileName(QAbstractFileEngine::BaseName); } /*! @@ -817,7 +819,7 @@ QString QFileInfo::baseName() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return ""_L1; - if (!d_ptr->fileEngine) + if (!d->fileEngine) return d->fileEntry.baseName(); return QFileSystemEntry(d->fileEngine->fileName(QAbstractFileEngine::BaseName)).baseName(); } @@ -838,7 +840,10 @@ QString QFileInfo::completeBaseName() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return ""_L1; - return d->fileEntry.completeBaseName(); + if (!d->fileEngine) + return d->fileEntry.completeBaseName(); + const QString fileEngineBaseName = d->fileEngine->fileName(QAbstractFileEngine::BaseName); + return QFileSystemEntry(fileEngineBaseName).completeBaseName(); } /*! diff --git a/tests/manual/android_content_uri/tst_content_uris.cpp b/tests/manual/android_content_uri/tst_content_uris.cpp index 900644091e..d2c2400849 100644 --- a/tests/manual/android_content_uri/tst_content_uris.cpp +++ b/tests/manual/android_content_uri/tst_content_uris.cpp @@ -53,7 +53,6 @@ void tst_ContentUris::dirFacilities() const QDir subDir = dirList.first(); QVERIFY(subDir.dirName() == "Sub"_L1); - QEXPECT_FAIL("", "absolutePath() is returning wrong path, cutting from 'primary' onward", Continue); qWarning() << "subDir.absolutePath()" << subDir.absolutePath() << dirList.first(); QVERIFY(subDir.absolutePath() == dirList.first()); QVERIFY(subDir.path() == dirList.first()); @@ -67,7 +66,6 @@ void tst_ContentUris::dirFacilities() QVERIFY(listFiles(dir, QDirIterator::Subdirectories).size() == 3); QVERIFY(dir.mkpath("Sub/Sub2/Sub3")); // Create an existing dir hierarchy QVERIFY(dir.rmdir("Sub")); - } void tst_ContentUris::readWriteFile() @@ -83,7 +81,7 @@ void tst_ContentUris::readWriteFile() QVERIFY(file.exists()); QVERIFY(file.size() == 0); QVERIFY(file.fileName() == url); - QVERIFY(QFileInfo(url).baseName() == fileName); + QVERIFY(QFileInfo(url).completeBaseName() == fileName); QVERIFY(file.open(QFile::WriteOnly)); QVERIFY(file.isOpen());