Is QFile::exists(const QString &file) misleading ?
-
Hi,
Let me ask this question.If you have a QString representing a system path - for example - "C:/temp/" and the folder exists.
What would you expect to return from the static call to QFile::exists ?
bool exists = QFile::exists("C:/temp/");
From my understanding exists would be false, as that is not a file, but a folder.
But, looking into QFile::exists code, there's no check for
QFileInfo::isFile()
orQFileInfo::isDir()
, just a static call to "QFileInfo::exists(fileName)"Therefore the returned value is in fact true.
- Was that always the case ?
- Is that something I should make the effort to try to get changed
- should I just make a QFileInfo object and check for exists and isFile manually ? (probably ;-) )
- Am I just chasing windmills at this point and it's time for the weekend
Greetings.
-
I'd've expected exactly what you observed.
@jsulm said in Is QFile::exists(const QString &file) misleading ?:
@J.Hilk Isn't everything a file on UNIX? :-)
It is, but that's beside the point. Directories are files on windows as well.
-
There's currently in progress (with the support of Thiago) a redesign of
QFile
to separate theQIODevice
from the filesystems operations, it might be worth raising this point there: https://lists.qt-project.org/pipermail/development/2019-February/035155.htmlIMHO I'd just remove the method altogether and leave it in
QFileInfo
only as you can fine-tune it a lot more there