7#include <QtCore/qcompare.h>
8#include <QtCore/qstring.h>
9#include <QtCore/qdirlisting.h>
10#include <QtCore/qfile.h>
11#include <QtCore/qfileinfo.h>
12#include <QtCore/qstringlist.h>
13#include <QtCore/qshareddata.h>
23 enum Filter { Dirs = 0x001,
27 AllEntries = Dirs | Files | Drives,
33 PermissionMask = 0x070,
42 CaseSensitive = 0x800,
45 NoDotAndDotDot = NoDot | NoDotDot,
49 Q_DECLARE_FLAGS(Filters, Filter)
51 enum SortFlag { Name = 0x00,
65 Q_DECLARE_FLAGS(SortFlags, SortFlag)
68 QDir(
const QString &path = QString());
69 QDir(
const QString &path,
const QString &nameFilter,
70 SortFlags sort = SortFlags(Name | IgnoreCase), Filters filter = AllEntries);
72 QDir(
const std::filesystem::path &path);
73 QDir(
const std::filesystem::path &path,
const QString &nameFilter,
74 SortFlags sort = SortFlags(Name | IgnoreCase), Filters filter = AllEntries);
75#elif QT_CONFIG(cxx17_filesystem)
76 template<
typename T, QtPrivate::ForceFilesystemPath<T> = 0>
77 QDir(
const T &path) : QDir(QtPrivate::fromFilesystemPath(path))
80 template<
typename T, QtPrivate::ForceFilesystemPath<T> = 0>
81 QDir(
const T &path,
const QString &nameFilter,
82 SortFlags sort = SortFlags(Name | IgnoreCase), Filters filter = AllEntries)
83 : QDir(QtPrivate::fromFilesystemPath(path), nameFilter, sort, filter)
89 QDir &operator=(
const QDir &);
90 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QDir)
92 void swap(QDir &other)
noexcept
93 { d_ptr.swap(other.d_ptr); }
95 void setPath(
const QString &path);
97 void setPath(
const std::filesystem::path &path);
98#elif QT_CONFIG(cxx17_filesystem)
99 template<
typename T, QtPrivate::ForceFilesystemPath<T> = 0>
100 void setPath(
const T &path)
102 setPath(QtPrivate::fromFilesystemPath(path));
105 QString path()
const;
106 QString absolutePath()
const;
107 QString canonicalPath()
const;
108#if QT_CONFIG(cxx17_filesystem) || defined(Q_QDOC)
109 std::filesystem::path filesystemPath()
const
110 {
return QtPrivate::toFilesystemPath(path()); }
111 std::filesystem::path filesystemAbsolutePath()
const
112 {
return QtPrivate::toFilesystemPath(absolutePath()); }
113 std::filesystem::path filesystemCanonicalPath()
const
114 {
return QtPrivate::toFilesystemPath(canonicalPath()); }
117#ifndef QT_BOOTSTRAPPED
118 static void setSearchPaths(
const QString &prefix,
const QStringList &searchPaths);
119 static void addSearchPath(
const QString &prefix,
const QString &path);
121 static void addSearchPath(
const QString &prefix,
const std::filesystem::path &path);
122#elif QT_CONFIG(cxx17_filesystem)
123 template<
typename T, QtPrivate::ForceFilesystemPath<T> = 0>
124 static void addSearchPath(
const QString &prefix,
const T &path)
126 addSearchPath(prefix, QtPrivate::fromFilesystemPath(path));
129 static QStringList searchPaths(
const QString &prefix);
132 QString dirName()
const;
133 QString filePath(
const QString &fileName)
const;
134 QString absoluteFilePath(
const QString &fileName)
const;
135 QString relativeFilePath(
const QString &fileName)
const;
137 static QString toNativeSeparators(
const QString &pathName);
138 static QString fromNativeSeparators(
const QString &pathName);
140 bool cd(
const QString &dirName);
143 QStringList nameFilters()
const;
144 void setNameFilters(
const QStringList &nameFilters);
146 Filters filter()
const;
147 void setFilter(Filters filter);
148 SortFlags sorting()
const;
149 void setSorting(SortFlags sort);
151#if QT_CORE_REMOVED_SINCE(6
, 5
)
154 qsizetype count(QT6_DECL_NEW_OVERLOAD)
const;
155 bool isEmpty(Filters filters = Filters(AllEntries | NoDotAndDotDot))
const;
157#if QT_CORE_REMOVED_SINCE(6
, 5
) && QT_POINTER_SIZE != 4
158 QString operator[](
int)
const;
160 QString operator[](qsizetype)
const;
162 static QStringList nameFiltersFromString(
const QString &nameFilter);
164 QStringList entryList(Filters filters = NoFilter, SortFlags sort = NoSort)
const;
165 QStringList entryList(
const QStringList &nameFilters, Filters filters = NoFilter,
166 SortFlags sort = NoSort)
const;
168 QFileInfoList entryInfoList(Filters filters = NoFilter, SortFlags sort = NoSort)
const;
169 QFileInfoList entryInfoList(
const QStringList &nameFilters, Filters filters = NoFilter,
170 SortFlags sort = NoSort)
const;
172#if QT_CORE_REMOVED_SINCE(6
, 10
)
173 bool mkdir(
const QString &dirName)
const;
174 bool mkdir(
const QString &dirName, QFile::Permissions permissions)
const;
176 bool mkdir(
const QString &dirName, std::optional<QFile::Permissions> p = std::nullopt)
const;
177 bool rmdir(
const QString &dirName)
const;
178#if QT_CORE_REMOVED_SINCE(6
, 10
)
179 bool mkpath(
const QString &dirPath)
const;
181 bool mkpath(
const QString &dirPath, std::optional<QFile::Permissions> p = std::nullopt)
const;
182 bool rmpath(
const QString &dirPath)
const;
184 bool removeRecursively();
186 bool isReadable()
const;
190 static bool isRelativePath(
const QString &path);
191 inline static bool isAbsolutePath(
const QString &path) {
return !isRelativePath(path); }
192 bool isRelative()
const;
193 inline bool isAbsolute()
const {
return !isRelative(); }
196#if QT_CORE_REMOVED_SINCE(6
, 8
)
197 bool operator==(
const QDir &dir)
const;
198 inline bool operator!=(
const QDir &dir)
const {
return !operator==(dir); }
201 bool remove(
const QString &fileName);
202 bool rename(
const QString &oldName,
const QString &newName);
203 bool exists(
const QString &name)
const;
205 static QFileInfoList drives();
207 constexpr static inline QChar listSeparator()
noexcept
216 static QChar separator()
225 static bool setCurrent(
const QString &path);
226 static inline QDir current() {
return QDir(currentPath()); }
227 static QString currentPath();
229 static inline QDir home() {
return QDir(homePath()); }
230 static QString homePath();
231 static inline QDir root() {
return QDir(rootPath()); }
232 static QString rootPath();
233 static inline QDir temp() {
return QDir(tempPath()); }
234 static QString tempPath();
236#if QT_CONFIG(regularexpression)
237 static bool match(
const QStringList &filters,
const QString &fileName);
238 static bool match(
const QString &filter,
const QString &fileName);
241 static QString cleanPath(
const QString &path);
242 void refresh()
const;
245 explicit QDir(QDirPrivate &d);
247 QSharedDataPointer<QDirPrivate> d_ptr;
250 friend Q_CORE_EXPORT
bool comparesEqual(
const QDir &lhs,
const QDir &rhs);
251 Q_DECLARE_EQUALITY_COMPARABLE_NON_NOEXCEPT(QDir)
252 friend class QDirIterator;
253 friend class QDirListing;
254 friend class QDirListingPrivate;
256 QDirPrivate *d_func();
257 const QDirPrivate *d_func()
const {
return d_ptr.constData(); }
261Q_DECLARE_OPERATORS_FOR_FLAGS(QDir::Filters)
262Q_DECLARE_OPERATORS_FOR_FLAGS(QDir::SortFlags)
264#ifndef QT_NO_DEBUG_STREAM
266Q_CORE_EXPORT
QDebug operator<<(QDebug debug, QDir::Filters filters);
267Q_CORE_EXPORT
QDebug operator<<(QDebug debug,
const QDir &dir);
\inmodule QtCore\reentrant
constexpr bool operator==(iterator o) const
constexpr bool operator<(iterator other) const
constexpr bool operator<(const_iterator other) const
const_iterator operator-(qsizetype j) const
constexpr bool operator==(pointer p) const
constexpr bool operator>(const_iterator other) const
const T & operator[](qsizetype j) const
const_iterator & operator-=(qsizetype j)
constexpr const_iterator(iterator o)
constexpr const_iterator()=default
const T & operator*() const
constexpr bool operator!=(const_iterator o) const
const_iterator operator+(qsizetype j) const
constexpr bool operator<=(iterator other) const
const_iterator & operator++()
constexpr bool operator!=(pointer p) const
constexpr bool operator>(iterator other) const
qsizetype operator-(const_iterator j) const
constexpr bool operator==(const_iterator o) const
constexpr bool operator>=(iterator other) const
const_iterator operator--(int)
const_iterator & operator--()
const_iterator operator++(int)
constexpr bool operator!=(iterator o) const
const_iterator & operator+=(qsizetype j)
friend const_iterator operator+(qsizetype j, const_iterator k)
constexpr bool operator<=(const_iterator other) const
const T * operator->() const
constexpr bool operator>=(const_iterator other) const
constexpr bool operator>(iterator other) const
iterator operator+(qsizetype j) const
iterator & operator-=(qsizetype j)
T & operator[](qsizetype j) const
constexpr bool operator<(const_iterator other) const
constexpr bool operator!=(pointer p) const
constexpr bool operator<=(iterator other) const
constexpr bool operator!=(iterator o) const
constexpr bool operator<=(const_iterator other) const
constexpr bool operator>(const_iterator other) const
constexpr bool operator>=(iterator other) const
constexpr bool operator<(iterator other) const
friend iterator operator+(qsizetype j, iterator k)
constexpr bool operator!=(const_iterator o) const
constexpr bool operator==(const_iterator o) const
constexpr bool operator>=(const_iterator other) const
qsizetype operator-(iterator j) const
constexpr iterator()=default
iterator operator-(qsizetype j) const
constexpr bool operator==(iterator o) const
iterator & operator+=(qsizetype j)
constexpr bool operator==(pointer p) const
void append(const_iterator i1, const_iterator i2)
iterator insert(const_iterator before, parameter_type t)
void removeFirst() noexcept
QList< T > & fill(parameter_type t, qsizetype size=-1)
const_pointer constData() const noexcept
void push_front(rvalue_ref t)
const_iterator begin() const noexcept
bool isDetached() const noexcept
void removeAt(qsizetype i)
QList< T > last(qsizetype n) const
bool isSharedWith(const QList< T > &other) const
QList< T > & operator+=(const QList< T > &l)
QList< T > operator+(const QList< T > &l) &&
reference emplaceFront(Args &&... args)
reference emplace_back(Args &&... args)
const T & constLast() const noexcept
iterator erase(const_iterator begin, const_iterator end)
void resizeForOverwrite(qsizetype size)
QList< T > sliced(qsizetype pos, qsizetype n) const
QList(std::initializer_list< T > args)
constexpr qsizetype max_size() const noexcept
QTypeTraits::compare_eq_result_container< QList, U > operator==(const QList &other) const
iterator insert(qsizetype i, parameter_type t)
bool empty() const noexcept
bool removeOne(const AT &t)
QList< T > toList() const noexcept
QList(InputIterator i1, InputIterator i2)
static QList< T > fromReadOnlyData(const T(&t)[N]) noexcept
static QList< T > fromList(const QList< T > &list) noexcept
QList(qsizetype size, parameter_type t)
const_reference back() const noexcept
qsizetype capacity() const
void swapItemsAt(qsizetype i, qsizetype j)
void push_back(parameter_type t)
QList< T > operator+(const QList< T > &l) const &
const_iterator end() const noexcept
iterator erase(const_iterator pos)
bool endsWith(parameter_type t) const
qsizetype count(const AT &t) const noexcept
bool startsWith(parameter_type t) const
friend qsizetype QtPrivate::lastIndexOf(const QList< V > &list, const U &u, qsizetype from) noexcept
QList< T > operator+(QList< T > &&l) &&
const_reference at(qsizetype i) const noexcept
constexpr qsizetype size() const noexcept
QList< T > sliced(qsizetype pos) const
QList< T > toVector() const noexcept
T value(qsizetype i) const
void swap(QList &other) noexcept
iterator insert(const_iterator before, qsizetype n, parameter_type t)
QList< T > & operator=(std::initializer_list< T > args)
void move(qsizetype from, qsizetype to)
QList(DataPointer dd) noexcept
const_reverse_iterator crbegin() const noexcept
reference operator[](qsizetype i)
const_iterator constBegin() const noexcept
const_reference operator[](qsizetype i) const noexcept
const_reverse_iterator rbegin() const noexcept
constexpr QList() noexcept=default
void remove(qsizetype i, qsizetype n=1)
const DataPointer & data_ptr() const &
qsizetype removeIf(Predicate pred)
DataPointer & data_ptr() &
qsizetype removeAll(const AT &t)
iterator emplace(qsizetype i, Args &&... args)
const T & first() const noexcept
iterator insert(qsizetype i, qsizetype n, parameter_type t)
void append(QList< T > &&l)
reference emplaceBack(Args &&... args)
QList< T > mid(qsizetype pos, qsizetype len=-1) const
QTypeTraits::compare_lt_result_container< QList, U > operator>(const QList &other) const noexcept(noexcept(other< std::declval< QList< U > >()))
void prepend(rvalue_ref t)
QList< T > operator+(QList< T > &&l) const &
QList & assign(std::initializer_list< T > l)
void resize(qsizetype size, parameter_type c)
QList< T > first(qsizetype n) const
const T & constFirst() const noexcept
static constexpr qsizetype maxSize()
iterator emplace(const_iterator before, Args &&... args)
void reserve(qsizetype size)
QList & assign(InputIterator first, InputIterator last)
static QList< T > fromVector(const QList< T > &vector) noexcept
void replace(qsizetype i, parameter_type t)
reverse_iterator rbegin()
void pop_front() noexcept
constexpr bool isEmpty() const noexcept
const T & last() const noexcept
constexpr qsizetype count() const noexcept
void removeLast() noexcept
void resize(qsizetype size)
friend auto compareThreeWay(const QList &lhs, const QList &rhs)
const_iterator cend() const noexcept
void append(parameter_type t)
QList< T > & operator+=(parameter_type t)
QTypeTraits::compare_eq_result_container< QList, U > operator!=(const QList &other) const
const_iterator constEnd() const noexcept
const_reverse_iterator rend() const noexcept
T value(qsizetype i, parameter_type defaultValue) const
const_iterator cbegin() const noexcept
QList & assign(qsizetype n, parameter_type t)
QTypeTraits::compare_lt_result_container< QList, U > operator>=(const QList &other) const noexcept(noexcept(std::declval< QList< U > >()< other))
const_pointer data() const noexcept
constexpr qsizetype length() const noexcept
const_reference front() const noexcept
QList< T > & operator+=(QList< T > &&l)
friend qsizetype QtPrivate::indexOf(const QList< V > &list, const U &u, qsizetype from) noexcept
DataPointer && data_ptr() &&
void append(const QList< T > &l)
const_reverse_iterator crend() const noexcept
Combined button and popup list for selecting options.
QString && asString(QString &&s)
constexpr QAnyStringArg qStringLikeToArg(QAnyStringView s) noexcept
qsizetype indexOf(const QList< T > &vector, const U &u, qsizetype from) noexcept
const QString & asString(const QString &s)
qsizetype lastIndexOf(const QList< T > &vector, const U &u, qsizetype from) noexcept
qsizetype lastIndexOf(const QList< V > &list, const U &u, qsizetype from) noexcept
qsizetype indexOf(const QList< V > &list, const U &u, qsizetype from) noexcept
static constexpr qsizetype lengthHelperPointer(const Char *data) noexcept
constexpr bool isLatin1(QLatin1StringView s) noexcept
QString operator""_s(const char16_t *str, size_t size) noexcept
QByteArrayView qToByteArrayViewIgnoringNull(const QByteArrayLike &b) noexcept
Q_DECLARE_TYPEINFO(QByteArrayView, Q_PRIMITIVE_TYPE)
#define __has_cpp_attribute(x)
Q_CORE_EXPORT QDebug operator<<(QDebug debug, QDir::Filters filters)
Q_LOGGING_CATEGORY(lcEventDispatcher, "qt.eventdispatcher")
Q_CORE_EXPORT Q_DECL_CONST_FUNCTION unsigned int qt_int_sqrt(unsigned int n)
\inmodule QtCore \title Global Qt Declarations
qsizetype erase(QList< T > &list, const AT &t)
QList(InputIterator, InputIterator) -> QList< ValueType >
qsizetype erase_if(QList< T > &list, Predicate pred)
QString operator+(const QString &s1, QChar s2)
QString operator+(QString &&lhs, const QString &rhs)
qsizetype erase_if(QString &s, Predicate pred)
QString operator+(QString &&lhs, QChar rhs)
QString operator+(QChar s1, const QString &s2)
QString operator+(const QString &s1, const QString &s2)
qsizetype erase(QString &s, const T &t)
QList< QList< qInternalCallback > > callbacks
qsizetype indexOf(const AT &t, qsizetype from=0) const noexcept
const Self * self() const
bool contains(const AT &t) const noexcept
QListSpecialMethodsBase()=default
qsizetype lastIndexOf(const AT &t, qsizetype from=-1) const noexcept
QListSpecialMethods()=default
constexpr QAnyStringArg(QAnyStringView v) noexcept
constexpr QLatin1StringArg(QLatin1StringView v) noexcept
QLatin1StringArg()=default
constexpr QStringViewArg(QStringView v) noexcept