Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qfileinfo.h
Go to the documentation of this file.
1// Copyright (C) 2020 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
4#ifndef QFILEINFO_H
5#define QFILEINFO_H
6
7#include <QtCore/qcompare.h>
8#include <QtCore/qfile.h>
9#include <QtCore/qlist.h>
10#include <QtCore/qshareddata.h>
11#include <QtCore/qmetatype.h>
12#include <QtCore/qdatetime.h>
13#include <QtCore/qtimezone.h>
14
16
17
18class QDir;
21
22class Q_CORE_EXPORT QFileInfo
23{
24 friend class QDirIteratorPrivate;
25 friend class QDirListingPrivate;
26public:
27 explicit QFileInfo(QFileInfoPrivate *d);
28
29#ifdef QT_IMPLICIT_QFILEINFO_CONSTRUCTION
30#define QFILEINFO_MAYBE_EXPLICIT Q_IMPLICIT
31#else
32#define QFILEINFO_MAYBE_EXPLICIT explicit
33#endif
34
35 QFileInfo();
39 QFileInfo(const QFileInfo &fileinfo);
40#ifdef Q_QDOC
41 QFileInfo(const std::filesystem::path &file);
42 QFileInfo(const QDir &dir, const std::filesystem::path &file);
43#elif QT_CONFIG(cxx17_filesystem)
44 template<typename T, QtPrivate::ForceFilesystemPath<T> = 0>
45 QFILEINFO_MAYBE_EXPLICIT QFileInfo(const T &file) : QFileInfo(QtPrivate::fromFilesystemPath(file)) { }
46
47 template<typename T, QtPrivate::ForceFilesystemPath<T> = 0>
48 QFILEINFO_MAYBE_EXPLICIT QFileInfo(const QDir &dir, const T &file) : QFileInfo(dir, QtPrivate::fromFilesystemPath(file))
49 {
50 }
51#endif // QT_CONFIG(cxx17_filesystem)
52
53#undef QFILEINFO_MAYBE_EXPLICIT
54
55 ~QFileInfo();
56
57 QFileInfo &operator=(const QFileInfo &fileinfo);
58 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QFileInfo)
59
61 { d_ptr.swap(other.d_ptr); }
62
63#if QT_CORE_REMOVED_SINCE(6, 8)
64 bool operator==(const QFileInfo &fileinfo) const;
65 inline bool operator!=(const QFileInfo &fileinfo) const { return !(operator==(fileinfo)); }
66#endif
67
68 void setFile(const QString &file);
69 void setFile(const QFileDevice &file);
70 void setFile(const QDir &dir, const QString &file);
71#ifdef Q_QDOC
72 void setFile(const std::filesystem::path &file);
73#elif QT_CONFIG(cxx17_filesystem)
74 template<typename T, QtPrivate::ForceFilesystemPath<T> = 0>
75 void setFile(const T &file) { setFile(QtPrivate::fromFilesystemPath(file)); }
76#endif // QT_CONFIG(cxx17_filesystem)
77
78 bool exists() const;
79 static bool exists(const QString &file);
80 void refresh();
81
82 QString filePath() const;
84 QString canonicalFilePath() const;
85#if QT_CONFIG(cxx17_filesystem) || defined(Q_QDOC)
86 std::filesystem::path filesystemFilePath() const
87 { return QtPrivate::toFilesystemPath(filePath()); }
88 std::filesystem::path filesystemAbsoluteFilePath() const
89 { return QtPrivate::toFilesystemPath(absoluteFilePath()); }
90 std::filesystem::path filesystemCanonicalFilePath() const
91 { return QtPrivate::toFilesystemPath(canonicalFilePath()); }
92#endif // QT_CONFIG(cxx17_filesystem)
93 QString fileName() const;
94 QString baseName() const;
95 QString completeBaseName() const;
96 QString suffix() const;
97 QString bundleName() const;
98 QString completeSuffix() const;
99
100 QString path() const;
101 QString absolutePath() const;
102 QString canonicalPath() const;
103#if QT_CONFIG(cxx17_filesystem) || defined(Q_QDOC)
104 std::filesystem::path filesystemPath() const { return QtPrivate::toFilesystemPath(path()); }
105 std::filesystem::path filesystemAbsolutePath() const
106 { return QtPrivate::toFilesystemPath(absolutePath()); }
107 std::filesystem::path filesystemCanonicalPath() const
108 { return QtPrivate::toFilesystemPath(canonicalPath()); }
109#endif // QT_CONFIG(cxx17_filesystem)
110 QDir dir() const;
111 QDir absoluteDir() const;
112
113 bool isReadable() const;
114 bool isWritable() const;
115 bool isExecutable() const;
116 bool isHidden() const;
117 bool isNativePath() const;
118
119 bool isRelative() const;
120 inline bool isAbsolute() const { return !isRelative(); }
121 bool makeAbsolute();
122
123 bool isFile() const;
124 bool isDir() const;
125 bool isSymLink() const;
126 bool isSymbolicLink() const;
127 bool isShortcut() const;
128 bool isAlias() const;
129 bool isJunction() const;
130 bool isRoot() const;
131 bool isBundle() const;
132
133 QString symLinkTarget() const;
134 QString readSymLink() const;
135 QString junctionTarget() const;
136
137#if QT_CONFIG(cxx17_filesystem) || defined(Q_QDOC)
138 std::filesystem::path filesystemSymLinkTarget() const
139 { return QtPrivate::toFilesystemPath(symLinkTarget()); }
140
141 std::filesystem::path filesystemReadSymLink() const
142 { return QtPrivate::toFilesystemPath(readSymLink()); }
143
144 std::filesystem::path filesystemJunctionTarget() const
145 { return QtPrivate::toFilesystemPath(junctionTarget()); }
146#endif // QT_CONFIG(cxx17_filesystem)
147
148 QString owner() const;
149 uint ownerId() const;
150 QString group() const;
151 uint groupId() const;
152
153 bool permission(QFile::Permissions permissions) const;
154 QFile::Permissions permissions() const;
155
156 qint64 size() const;
157
158 QDateTime birthTime() const { return fileTime(QFile::FileBirthTime); }
161 QDateTime lastRead() const { return fileTime(QFile::FileAccessTime); }
163
164 QDateTime birthTime(const QTimeZone &tz) const { return fileTime(QFile::FileBirthTime, tz); }
167 QDateTime lastRead(const QTimeZone &tz) const { return fileTime(QFile::FileAccessTime, tz); }
168 QDateTime fileTime(QFile::FileTime time, const QTimeZone &tz) const;
169
170 bool caching() const;
171 void setCaching(bool on);
172 void stat();
173
174protected:
175 QSharedDataPointer<QFileInfoPrivate> d_ptr;
176
177private:
178 friend Q_CORE_EXPORT bool comparesEqual(const QFileInfo &lhs, const QFileInfo &rhs);
180 QFileInfoPrivate* d_func();
181 inline const QFileInfoPrivate* d_func() const
182 {
183 return d_ptr.constData();
184 }
185};
186
187Q_DECLARE_SHARED(QFileInfo)
188
190
191#ifndef QT_NO_DEBUG_STREAM
192Q_CORE_EXPORT QDebug operator<<(QDebug, const QFileInfo &);
193#endif
194
196
198
199#endif // QFILEINFO_H
\inmodule QtCore\reentrant
Definition qdatetime.h:283
\inmodule QtCore
\inmodule QtCore
Definition qdir.h:20
\inmodule QtCore
Definition qfiledevice.h:32
@ FileMetadataChangeTime
Definition qfiledevice.h:60
@ FileModificationTime
Definition qfiledevice.h:61
QDateTime lastRead() const
Returns the date and time when the file was last read (accessed).
Definition qfileinfo.h:161
QDateTime lastModified() const
Returns the date and time when the file was last modified.
Definition qfileinfo.h:160
QDateTime birthTime() const
Returns the date and time when the file was created (born), in local time.
Definition qfileinfo.h:158
QDateTime lastRead(const QTimeZone &tz) const
Returns the date and time when the file was last read (accessed).
Definition qfileinfo.h:167
QDateTime birthTime(const QTimeZone &tz) const
Returns the date and time when the file was created (born).
Definition qfileinfo.h:164
QDateTime metadataChangeTime(const QTimeZone &tz) const
Returns the date and time when the file's metadata was last changed.
Definition qfileinfo.h:165
QDateTime fileTime(QFile::FileTime time) const
QDateTime lastModified(const QTimeZone &tz) const
Returns the date and time when the file was last modified.
Definition qfileinfo.h:166
QSharedDataPointer< QFileInfoPrivate > d_ptr
Definition qfileinfo.h:175
QDateTime metadataChangeTime() const
Returns the date and time when the file's metadata was last changed, in local time.
Definition qfileinfo.h:159
bool isAbsolute() const
Returns true if the file system entry's path is absolute, otherwise returns false (that is,...
Definition qfileinfo.h:120
Definition qlist.h:75
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore
Definition qtimezone.h:26
Combined button and popup list for selecting options.
\macro QT_NO_KEYWORDS >
#define Q_DECLARE_EQUALITY_COMPARABLE(...)
constexpr bool operator!=(const timespec &t1, const timespec &t2)
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
bool comparesEqual(const QDir &lhs, const QDir &rhs)
Definition qdir.cpp:1819
#define QFILEINFO_MAYBE_EXPLICIT
Definition qfileinfo.h:32
Q_CORE_EXPORT QDebug operator<<(QDebug, const QFileInfo &)
static QString readSymLink(const QFileSystemEntry &link)
#define QT_DECL_METATYPE_EXTERN(TYPE, EXPORT)
Definition qmetatype.h:1388
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLboolean GLuint group
GLbyte GLbyte tz
GLsizei const GLchar *const * path
static QT_BEGIN_NAMESPACE bool isRelative(const QString &path)
static QString absolutePath(const QString &path)
bool operator==(const QRandomGenerator &rng1, const QRandomGenerator &rng2)
Definition qrandom.cpp:1220
static QString canonicalPath(const QString &rootPath)
static QString absoluteFilePath(const Options *options, const QString &relativeFileName)
Definition main.cpp:1902
return device isReadable() ? device -> read(static_cast< char * >(buf), size) :-1
unsigned int uint
Definition qtypes.h:34
long long qint64
Definition qtypes.h:60
QFile file
[0]
QSharedPointer< T > other(t)
[5]
this swap(other)
QString dir
[11]