summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/io/qdir.cpp20
-rw-r--r--src/corelib/io/qdir.h2
2 files changed, 22 insertions, 0 deletions
diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp
index 437f774547..37795ae5c4 100644
--- a/src/corelib/io/qdir.cpp
+++ b/src/corelib/io/qdir.cpp
@@ -1843,6 +1843,26 @@ bool QDir::exists(const QString &name) const
}
/*!
+ Returns whether the directory is empty.
+
+ Equivalent to \c{count() == 0} with filters
+ \c{QDir::AllEntries | QDir::NoDotAndDotDot}, but faster as it just checks
+ whether the directory contains at least one entry.
+
+ \note Unless you set the \p filters flags to include \c{QDir::NoDotAndDotDot}
+ (as the default value does), no directory is empty.
+
+ \sa count(), entryList(), setFilter()
+ \since 5.9
+*/
+bool QDir::isEmpty(Filters filters) const
+{
+ const auto d = d_ptr.constData();
+ QDirIterator it(d->dirEntry.filePath(), d->nameFilters, filters);
+ return !it.hasNext();
+}
+
+/*!
Returns a list of the root directories on this system.
On Windows this returns a list of QFileInfo objects containing "C:/",
diff --git a/src/corelib/io/qdir.h b/src/corelib/io/qdir.h
index ef7ec2c701..950a26f327 100644
--- a/src/corelib/io/qdir.h
+++ b/src/corelib/io/qdir.h
@@ -144,6 +144,8 @@ public:
void setSorting(SortFlags sort);
uint count() const;
+ bool isEmpty(Filters filters = Filters(AllEntries | NoDotAndDotDot)) const;
+
QString operator[](int) const;
static QStringList nameFiltersFromString(const QString &nameFilter);