diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2016-07-23 11:14:57 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2017-08-05 16:41:38 +0000 |
commit | 6c3a3d498a8797c481a394418fff8f7bf1886c61 (patch) | |
tree | b64407f2b2520d46b42f96495c41600aaae03d3c /src/corelib/io/qfileinfo.cpp | |
parent | db433bdf65e011e64be51948e79abc02034dddbf (diff) |
Filesystem: Use "birth time" to avoid confusion with Unix ctime
The Unix stat fields "st_ctime" and "st_ctim" mean "change time", the
last time that the file/inode status fields were changed. It does not
mean "creation time". So this commit splits all of the internal API to
"birth" and "metadata change" instead of "creation" to avoid the
conflict.
Change-Id: I149e0540c00745fe8119fffd1463fe78b619649e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/corelib/io/qfileinfo.cpp')
-rw-r--r-- | src/corelib/io/qfileinfo.cpp | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index bb4eb5aeb2..104a171e99 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -194,8 +194,11 @@ QDateTime &QFileInfoPrivate::getFileTime(QAbstractFileEngine::FileTime request) case QAbstractFileEngine::AccessTime: cf = CachedATime; break; - case QAbstractFileEngine::CreationTime: - cf = CachedCTime; + case QAbstractFileEngine::BirthTime: + cf = CachedBTime; + break; + case QAbstractFileEngine::MetadataChangeTime: + cf = CachedMCTime; break; case QAbstractFileEngine::ModificationTime: cf = CachedMTime; @@ -1316,7 +1319,10 @@ qint64 QFileInfo::size() const */ QDateTime QFileInfo::created() const { - return fileTime(QFile::FileCreationTime); + QDateTime d = fileTime(QFile::FileBirthTime); + if (d.isValid()) + return d; + return fileTime(QFile::FileMetadataChangeTime); } #endif @@ -1331,7 +1337,7 @@ QDateTime QFileInfo::created() const */ QDateTime QFileInfo::birthTime() const { - return fileTime(QFile::FileCreationTime); + return fileTime(QFile::FileBirthTime); } /*! @@ -1345,7 +1351,7 @@ QDateTime QFileInfo::birthTime() const */ QDateTime QFileInfo::metadataChangeTime() const { - return fileTime(QFile::FileCreationTime); + return fileTime(QFile::FileMetadataChangeTime); } /*! @@ -1373,16 +1379,17 @@ QDateTime QFileInfo::lastRead() const /*! \since 5.10 - Returns the file time specified by \a time. - If the time cannot be determined return QDateTime() (an invalid - date time). + + Returns the file time specified by \a time. If the time cannot be + determined, an invalid date time is returned. \sa QFile::FileTime, QDateTime::isValid() */ QDateTime QFileInfo::fileTime(QFile::FileTime time) const { Q_STATIC_ASSERT(int(QFile::FileAccessTime) == int(QAbstractFileEngine::AccessTime)); - Q_STATIC_ASSERT(int(QFile::FileCreationTime) == int(QAbstractFileEngine::CreationTime)); + Q_STATIC_ASSERT(int(QFile::FileBirthTime) == int(QAbstractFileEngine::BirthTime)); + Q_STATIC_ASSERT(int(QFile::FileMetadataChangeTime) == int(QAbstractFileEngine::MetadataChangeTime)); Q_STATIC_ASSERT(int(QFile::FileModificationTime) == int(QAbstractFileEngine::ModificationTime)); Q_D(const QFileInfo); @@ -1397,8 +1404,11 @@ QDateTime QFileInfo::fileTime(QFile::FileTime time) const case QFile::FileAccessTime: flag = QFileSystemMetaData::AccessTime; break; - case QFile::FileCreationTime: - flag = QFileSystemMetaData::CreationTime; + case QFile::FileBirthTime: + flag = QFileSystemMetaData::BirthTime; + break; + case QFile::FileMetadataChangeTime: + flag = QFileSystemMetaData::MetadataChangeTime; break; case QFile::FileModificationTime: flag = QFileSystemMetaData::ModificationTime; |