DirEntry Class

class QDirListing::DirEntry

Public Functions

QString absoluteFilePath() const
QString absolutePath() const
QString baseName() const
QDateTime birthTime(const QTimeZone &tz) const
QString bundleName() const
QString canonicalFilePath() const
QString completeBaseName() const
QString completeSuffix() const
bool exists() const
QFileInfo fileInfo() const
QString fileName() const
QString filePath() const
QDateTime fileTime(QFileDevice::FileTime type, const QTimeZone &tz) const
bool isDir() const
bool isExecutable() const
bool isFile() const
bool isHidden() const
bool isReadable() const
bool isSymLink() const
bool isWritable() const
QDateTime lastModified(const QTimeZone &tz) const
QDateTime lastRead(const QTimeZone &tz) const
QDateTime metadataChangeTime(const QTimeZone &tz) const
qint64 size() const
QString suffix() const

Detailed Description

Dereferencing a valid QDirListing::const_iterator returns a DirEntry object.

DirEntry offers a subset of QFileInfo's API (for example, fileName(), filePath(), exists()). Internally, DirEntry only constructs a QFileInfo object if needed, that is, if the info hasn't been already fetched by other system functions. You can use DirEntry::fileInfo() to get a QFileInfo. For example:

 using ItFlag = QDirListing::IteratorFlag;
 for (const auto &dirEntry : QDirListing(u"/etc"_s, ItFlag::Recursive)) {
     // Faster
     if (dirEntry.fileName().endsWith(u".conf")) { /* ... */ }

     // This works, but might be potentially slower, since it has to construct a
     // QFileInfo, whereas (depending on the implementation) the fileName could
     // be known already
     if (dirEntry.fileInfo().fileName().endsWith(u".conf")) { /* ... */ }
 }
 using ItFlag = QDirListing::IteratorFlag;
 for (const auto &dirEntry : QDirListing(u"/etc"_s, ItFlag::Recursive)) {
     // Both approaches are the same, because DirEntry will have to construct
     // a QFileInfo to get this info (for example, by calling system stat())

     if (dirEntry.size() >= 4'000 /* 4KB */) { /* ...*/ }
     if (dirEntry.fileInfo().size() >= 4'000 /* 4KB */) { /* ... */ }
 }

Member Function Documentation

QDateTime DirEntry::birthTime(const QTimeZone &tz) const

QDateTime DirEntry::fileTime(QFileDevice::FileTime type, const QTimeZone &tz) const

QDateTime DirEntry::lastModified(const QTimeZone &tz) const

QDateTime DirEntry::lastRead(const QTimeZone &tz) const

QDateTime DirEntry::metadataChangeTime(const QTimeZone &tz) const

QFileInfo DirEntry::fileInfo() const

QString DirEntry::absoluteFilePath() const

QString DirEntry::absolutePath() const

QString DirEntry::baseName() const

QString DirEntry::bundleName() const

QString DirEntry::canonicalFilePath() const

QString DirEntry::completeBaseName() const

QString DirEntry::completeSuffix() const

QString DirEntry::fileName() const

QString DirEntry::filePath() const

QString DirEntry::suffix() const

bool DirEntry::exists() const

bool DirEntry::isDir() const

bool DirEntry::isExecutable() const

bool DirEntry::isFile() const

bool DirEntry::isHidden() const

bool DirEntry::isReadable() const

bool DirEntry::isWritable() const

qint64 DirEntry::size() const

See the QFileInfo methods with the same names.