diff options
Diffstat (limited to 'src/corelib/io/qfsfileengine.cpp')
-rw-r--r-- | src/corelib/io/qfsfileengine.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp index 75478f0467..b7f2f0d645 100644 --- a/src/corelib/io/qfsfileengine.cpp +++ b/src/corelib/io/qfsfileengine.cpp @@ -525,6 +525,25 @@ bool QFSFileEngine::seek(qint64 pos) } /*! + \reimp +*/ +QDateTime QFSFileEngine::fileTime(FileTime time) const +{ + Q_D(const QFSFileEngine); + + if (time == AccessTime) { + // always refresh for the access time + d->metaData.clearFlags(QFileSystemMetaData::AccessTime); + } + + if (d->doStat(QFileSystemMetaData::Times)) + return d->metaData.fileTime(time); + + return QDateTime(); +} + + +/*! \internal */ bool QFSFileEnginePrivate::seekFdFh(qint64 pos) @@ -708,6 +727,7 @@ qint64 QFSFileEnginePrivate::readLineFdFh(char *data, qint64 maxlen) qint64 QFSFileEngine::write(const char *data, qint64 len) { Q_D(QFSFileEngine); + d->metaData.clearFlags(QFileSystemMetaData::Times); // On Windows' stdlib implementation, the results of calling fread and // fwrite are undefined if not called either in sequence, or if preceded |