diff --git a/src/corelib/doc/snippets/code/src_corelib_io_qdirlisting.cpp b/src/corelib/doc/snippets/code/src_corelib_io_qdirlisting.cpp index 0694daa6cba..584b34fc3bc 100644 --- a/src/corelib/doc/snippets/code/src_corelib_io_qdirlisting.cpp +++ b/src/corelib/doc/snippets/code/src_corelib_io_qdirlisting.cpp @@ -2,6 +2,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause #include +#include using namespace Qt::StringLiterals; @@ -22,13 +23,12 @@ for (const auto &dirEntry : QDirListing(u"/etc"_s, ItFlag::Recursive)) { { //! [1] -using ItFlag = QDirListing::IteratorFlag; -QDirListing dirList(u"/sys"_s, QStringList{u"scaling_cur_freq"_s}, - QDir::NoFilter, ItFlag::Recursive); +using F = QDirListing::IteratorFlag; +QDirListing dirList(u"/sys"_s, QStringList{u"scaling_cur_freq"_s}, F::FilesOnly | F::Recursive); for (const auto &dirEntry : dirList) { QFile f(dirEntry.filePath()); - f.open(QIODevice::ReadOnly); - qDebug() << f.fileName() << f.readAll().trimmed().toDouble() / 1000 << "MHz"; + if (f.open(QIODevice::ReadOnly)) + qDebug() << f.fileName() << f.readAll().trimmed().toDouble() / 1000 << "MHz"; } //! [1] } @@ -68,4 +68,22 @@ for (const auto &dirEntry : QDirListing(u"/etc"_s, ItFlag::Recursive)) { //! [4] } +{ +//! [5] +using F = QDirListing::IteratorFlag; +const auto flags = F::FilesOnly | F::Recursive; +for (const auto &dirEntry : QDirListing(u"/etc"_s, flags)) { + // ... +} +//! [5] +} + +{ +//! [6] +using F = QDirListing::IteratorFlag; +const auto flags = F::FilesOnly | F::Recursive | F::ResolveSymlinks; +for (const auto &dirEntry : QDirListing(u"/etc"_s, flags)) { + // ... +} +//! [6] } diff --git a/src/corelib/io/qdirlisting.cpp b/src/corelib/io/qdirlisting.cpp index 408cccaaf56..13d4babd8d1 100644 --- a/src/corelib/io/qdirlisting.cpp +++ b/src/corelib/io/qdirlisting.cpp @@ -20,10 +20,17 @@ \snippet code/src_corelib_io_qdirlisting.cpp 0 - Here's how to find and read all files filtered by name, recursively: + Here's how to find and read all regular files filtered by name, recursively: \snippet code/src_corelib_io_qdirlisting.cpp 1 + Here's how to list only regular files, recursively: + \snippet code/src_corelib_io_qdirlisting.cpp 5 + + Here's how to list only regular files and symbolic links to regular + files, recursively: + \snippet code/src_corelib_io_qdirlisting.cpp 6 + Iterators constructed by QDirListing (QDirListing::const_iterator) are forward-only, single-pass iterators, that don't allow random access. They can be used in ranged-for loops (or with STL alogrithms that don't