Qt 6.x
The Qt SDK
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/qfile.h>
8#include <QtCore/qlist.h>
9#include <QtCore/qshareddata.h>
10#include <QtCore/qmetatype.h>
11#include <QtCore/qdatetime.h>
12#include <QtCore/qtimezone.h>
13
15
16
17class QDir;
20
21class Q_CORE_EXPORT QFileInfo
22{
23 friend class QDirIteratorPrivate;
24public:
25 explicit QFileInfo(QFileInfoPrivate *d);
26
27#ifdef QT_IMPLICIT_QFILEINFO_CONSTRUCTION
28#define QFILEINFO_MAYBE_EXPLICIT Q_IMPLICIT
29#else
30#define QFILEINFO_MAYBE_EXPLICIT explicit
31#endif
32
33 QFileInfo();
37 QFileInfo(const QFileInfo &fileinfo);
38#ifdef Q_QDOC
39 QFileInfo(const std::filesystem::path &file);
40 QFileInfo(const QDir &dir, const std::filesystem::path &file);
41#elif QT_CONFIG(cxx17_filesystem)
42 template<typename T, QtPrivate::ForceFilesystemPath<T> = 0>
43 QFILEINFO_MAYBE_EXPLICIT QFileInfo(const T &file) : QFileInfo(QtPrivate::fromFilesystemPath(file)) { }
44
45 template<typename T, QtPrivate::ForceFilesystemPath<T> = 0>
46 QFILEINFO_MAYBE_EXPLICIT QFileInfo(const QDir &dir, const T &file) : QFileInfo(dir, QtPrivate::fromFilesystemPath(file))
47 {
48 }
49#endif // QT_CONFIG(cxx17_filesystem)
50
51#undef QFILEINFO_MAYBE_EXPLICIT
52
53 ~QFileInfo();
54
55 QFileInfo &operator=(const QFileInfo &fileinfo);
56 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QFileInfo)
57
58 void swap(QFileInfo &other) noexcept
59 { d_ptr.swap(other.d_ptr); }
60
61 bool operator==(const QFileInfo &fileinfo) const;
62 inline bool operator!=(const QFileInfo &fileinfo) const { return !(operator==(fileinfo)); }
63
64 void setFile(const QString &file);
65 void setFile(const QFileDevice &file);
66 void setFile(const QDir &dir, const QString &file);
67#ifdef Q_QDOC
68 void setFile(const std::filesystem::path &file);
69#elif QT_CONFIG(cxx17_filesystem)
70 template<typename T, QtPrivate::ForceFilesystemPath<T> = 0>
71 void setFile(const T &file) { setFile(QtPrivate::fromFilesystemPath(file)); }
72#endif // QT_CONFIG(cxx17_filesystem)
73
74 bool exists() const;
75 static bool exists(const QString &file);
76 void refresh();
77
78 QString filePath() const;
80 QString canonicalFilePath() const;
81#if QT_CONFIG(cxx17_filesystem) || defined(Q_QDOC)
82 std::filesystem::path filesystemFilePath() const
83 { return QtPrivate::toFilesystemPath(filePath()); }
84 std::filesystem::path filesystemAbsoluteFilePath() const
85 { return QtPrivate::toFilesystemPath(absoluteFilePath()); }
86 std::filesystem::path filesystemCanonicalFilePath() const
87 { return QtPrivate::toFilesystemPath(canonicalFilePath()); }
88#endif // QT_CONFIG(cxx17_filesystem)
89 QString fileName() const;
90 QString baseName() const;
91 QString completeBaseName() const;
92 QString suffix() const;
93 QString bundleName() const;
94 QString completeSuffix() const;
95
96 QString path() const;
97 QString absolutePath() const;
98 QString canonicalPath() const;
99#if QT_CONFIG(cxx17_filesystem) || defined(Q_QDOC)
100 std::filesystem::path filesystemPath() const { return QtPrivate::toFilesystemPath(path()); }
101 std::filesystem::path filesystemAbsolutePath() const
102 { return QtPrivate::toFilesystemPath(absolutePath()); }
103 std::filesystem::path filesystemCanonicalPath() const
104 { return QtPrivate::toFilesystemPath(canonicalPath()); }
105#endif // QT_CONFIG(cxx17_filesystem)
106 QDir dir() const;
107 QDir absoluteDir() const;
108
109 bool isReadable() const;
110 bool isWritable() const;
111 bool isExecutable() const;
112 bool isHidden() const;
113 bool isNativePath() const;
114
115 bool isRelative() const;
116 inline bool isAbsolute() const { return !isRelative(); }
117 bool makeAbsolute();
118
119 bool isFile() const;
120 bool isDir() const;
121 bool isSymLink() const;
122 bool isSymbolicLink() const;
123 bool isShortcut() const;
124 bool isAlias() const;
125 bool isJunction() const;
126 bool isRoot() const;
127 bool isBundle() const;
128
129 QString symLinkTarget() const;
130 QString readSymLink() const;
131 QString junctionTarget() const;
132
133#if QT_CONFIG(cxx17_filesystem) || defined(Q_QDOC)
134 std::filesystem::path filesystemSymLinkTarget() const
135 { return QtPrivate::toFilesystemPath(symLinkTarget()); }
136
137 std::filesystem::path filesystemReadSymLink() const
138 { return QtPrivate::toFilesystemPath(readSymLink()); }
139
140 std::filesystem::path filesystemJunctionTarget() const
141 { return QtPrivate::toFilesystemPath(junctionTarget()); }
142#endif // QT_CONFIG(cxx17_filesystem)
143
144 QString owner() const;
145 uint ownerId() const;
146 QString group() const;
147 uint groupId() const;
148
149 bool permission(QFile::Permissions permissions) const;
150 QFile::Permissions permissions() const;
151
152 qint64 size() const;
153
154 QDateTime birthTime() const { return fileTime(QFile::FileBirthTime); }
157 QDateTime lastRead() const { return fileTime(QFile::FileAccessTime); }
159
160 QDateTime birthTime(const QTimeZone &tz) const { return fileTime(QFile::FileBirthTime, tz); }
163 QDateTime lastRead(const QTimeZone &tz) const { return fileTime(QFile::FileAccessTime, tz); }
164 QDateTime fileTime(QFile::FileTime time, const QTimeZone &tz) const;
165
166 bool caching() const;
167 void setCaching(bool on);
168 void stat();
169
170protected:
172
173private:
174 QFileInfoPrivate* d_func();
175 inline const QFileInfoPrivate* d_func() const
176 {
177 return d_ptr.constData();
178 }
179};
180
181Q_DECLARE_SHARED(QFileInfo)
182
184
185#ifndef QT_NO_DEBUG_STREAM
186Q_CORE_EXPORT QDebug operator<<(QDebug, const QFileInfo &);
187#endif
188
190
192
193#endif // QFILEINFO_H
\inmodule QtCore\reentrant
Definition qdatetime.h:257
\inmodule QtCore
\inmodule QtCore
Definition qdir.h:19
\inmodule QtCore
Definition qfiledevice.h:16
@ FileMetadataChangeTime
Definition qfiledevice.h:44
@ FileModificationTime
Definition qfiledevice.h:45
\inmodule QtCore \reentrant
Definition qfileinfo.h:22
QDateTime lastRead() const
Returns the date and time when the file was last read (accessed).
Definition qfileinfo.h:157
QDateTime lastModified() const
Returns the date and time when the file was last modified.
Definition qfileinfo.h:156
bool operator!=(const QFileInfo &fileinfo) const
Returns true if this QFileInfo object refers to a different file than the one specified by fileinfo; ...
Definition qfileinfo.h:62
QDateTime birthTime() const
Returns the date and time when the file was created (born), in local time.
Definition qfileinfo.h:154
QDateTime lastRead(const QTimeZone &tz) const
Returns the date and time when the file was last read (accessed).
Definition qfileinfo.h:163
QDateTime birthTime(const QTimeZone &tz) const
Returns the date and time when the file was created (born).
Definition qfileinfo.h:160
QDateTime metadataChangeTime(const QTimeZone &tz) const
Returns the date and time when the file's metadata was last changed.
Definition qfileinfo.h:161
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:162
QSharedDataPointer< QFileInfoPrivate > d_ptr
Definition qfileinfo.h:171
QDateTime metadataChangeTime() const
Returns the date and time when the file's metadata was last changed, in local time.
Definition qfileinfo.h:155
bool isAbsolute() const
Returns true if the file path is absolute, otherwise returns false (i.e.
Definition qfileinfo.h:116
Definition qlist.h:74
\inmodule QtCore
Definition qshareddata.h:35
const T * constData() const noexcept
Returns a const pointer to the shared data object.
Definition qshareddata.h:51
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
\inmodule QtCore
Definition qtimezone.h:25
Combined button and popup list for selecting options.
\macro QT_NAMESPACE
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
#define QFILEINFO_MAYBE_EXPLICIT
Definition qfileinfo.h:30
Q_CORE_EXPORT QDebug operator<<(QDebug, const QFileInfo &)
static QString readSymLink(const QFileSystemEntry &link)
#define QT_DECL_METATYPE_EXTERN(TYPE, EXPORT)
Definition qmetatype.h:1367
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:1219
static QString canonicalPath(const QString &rootPath)
static QString absoluteFilePath(const Options *options, const QString &relativeFileName)
Definition main.cpp:1791
unsigned int uint
Definition qtypes.h:29
long long qint64
Definition qtypes.h:55
QFile file
[0]
info setFile("/etc/hosts")
QSharedPointer< T > other(t)
[5]
QString dir
[11]