1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QDIRITERATOR_H
6#define QDIRITERATOR_H
7
8#include <QtCore/qdir.h>
9
10#include <memory>
11
12QT_BEGIN_NAMESPACE
13
14class QDirIteratorPrivate;
15class Q_CORE_EXPORT QDirIterator
16{
17public:
18 enum IteratorFlag {
19 NoIteratorFlags = 0x0,
20 FollowSymlinks = 0x1,
21 Subdirectories = 0x2
22 };
23 Q_DECLARE_FLAGS(IteratorFlags, IteratorFlag)
24
25 QDirIterator(const QDir &dir, IteratorFlags flags = NoIteratorFlags);
26 QDirIterator(const QString &path,
27 IteratorFlags flags = NoIteratorFlags);
28 QDirIterator(const QString &path,
29 QDir::Filters filter,
30 IteratorFlags flags = NoIteratorFlags);
31 QDirIterator(const QString &path,
32 const QStringList &nameFilters,
33 QDir::Filters filters = QDir::NoFilter,
34 IteratorFlags flags = NoIteratorFlags);
35
36 ~QDirIterator();
37
38 QString next();
39 QFileInfo nextFileInfo();
40 bool hasNext() const;
41
42 QString fileName() const;
43 QString filePath() const;
44 QFileInfo fileInfo() const;
45 QString path() const;
46
47private:
48 Q_DISABLE_COPY(QDirIterator)
49
50 std::unique_ptr<QDirIteratorPrivate> d;
51 friend class QDir;
52};
53
54Q_DECLARE_OPERATORS_FOR_FLAGS(QDirIterator::IteratorFlags)
55
56QT_END_NAMESPACE
57
58#endif
59

source code of qtbase/src/corelib/io/qdiriterator.h