87 using TriStateResult = QAbstractFileEngine::TriStateResult;
89 static bool isCaseSensitive(
const QFileSystemEntry &entry, QFileSystemMetaData &data);
91 static QFileSystemEntry getLinkTarget(
const QFileSystemEntry &link, QFileSystemMetaData &data);
92 static QFileSystemEntry getRawLinkPath(
const QFileSystemEntry &link,
93 QFileSystemMetaData &data);
94 static QFileSystemEntry getJunctionTarget(
const QFileSystemEntry &link, QFileSystemMetaData &data);
95 static QFileSystemEntry canonicalName(
const QFileSystemEntry &entry, QFileSystemMetaData &data);
96 static QFileSystemEntry absoluteName(
const QFileSystemEntry &entry);
97 static QByteArray id(
const QFileSystemEntry &entry) {
return nativeId(entry).toByteArray(); }
98 static QFileSystemNativeId nativeId(
const QFileSystemEntry &entry);
99 static QString resolveUserName(
const QFileSystemEntry &entry, QFileSystemMetaData &data);
100 static QString resolveGroupName(
const QFileSystemEntry &entry, QFileSystemMetaData &data);
102#if defined(Q_OS_UNIX)
103 static QString resolveUserName(uint userId);
104 static QString resolveGroupName(uint groupId);
107#if defined(Q_OS_DARWIN)
108 static QString bundleName(
const QFileSystemEntry &entry);
110 static QString bundleName(
const QFileSystemEntry &) {
return QString(); }
113 static bool fillMetaData(
const QFileSystemEntry &entry, QFileSystemMetaData &data,
114 QFileSystemMetaData::MetaDataFlags what);
115#if defined(Q_OS_UNIX)
116 static TriStateResult cloneFile(
int srcfd,
int dstfd,
const QFileSystemMetaData &knownData);
117 static bool fillMetaData(
int fd, QFileSystemMetaData &data);
118 static QByteArray id(
int fd) {
return nativeId(fd).toByteArray(); }
119 static QFileSystemNativeId nativeId(
int fd);
120 static bool setFileTime(
int fd,
const QDateTime &newDate,
121 QFile::FileTime whatTime, QSystemError &error);
122 static bool setPermissions(
int fd, QFile::Permissions permissions, QSystemError &error);
125 static QFileSystemEntry junctionTarget(
const QFileSystemEntry &link, QFileSystemMetaData &data);
126 static bool uncListSharesOnServer(
const QString &server, QStringList *list);
127 static bool fillMetaData(
int fd, QFileSystemMetaData &data,
128 QFileSystemMetaData::MetaDataFlags what = QFileSystemMetaData::WinStatFlags);
129 static bool fillMetaData(HANDLE fHandle, QFileSystemMetaData &data,
130 QFileSystemMetaData::MetaDataFlags what);
131 static bool fillPermissions(
const QFileSystemEntry &entry, QFileSystemMetaData &data,
132 QFileSystemMetaData::MetaDataFlags what);
133 static QByteArray id(HANDLE fHandle) {
return nativeId(fHandle).toByteArray(); }
134 static QFileSystemNativeId nativeId(HANDLE fHandle);
135 static bool setFileTime(HANDLE fHandle,
const QDateTime &newDate,
136 QFile::FileTime whatTime, QSystemError &error);
137 static QString owner(
const QFileSystemEntry &entry, QAbstractFileEngine::FileOwner own);
138 static QString nativeAbsoluteFilePath(
const QString &path);
139 static bool isDirPath(
const QString &path,
bool *existed);
142 static QString homePath();
143 static QString rootPath();
144 static QString tempPath();
146 static bool createDirectory(
const QFileSystemEntry &entry,
bool createParents,
147 std::optional<QFile::Permissions> permissions = std::nullopt)
150 return mkpath(entry, permissions);
151 return mkdir(entry, permissions);
154 static bool mkdir(
const QFileSystemEntry &entry,
155 std::optional<QFile::Permissions> permissions = std::nullopt);
156 static bool mkpath(
const QFileSystemEntry &entry,
157 std::optional<QFile::Permissions> permissions = std::nullopt);
159 static bool removeDirectory(
const QFileSystemEntry &entry,
bool removeEmptyParents)
161 if (removeEmptyParents)
162 return rmpath(entry);
166 static bool rmdir(
const QFileSystemEntry &entry);
167 static bool rmpath(
const QFileSystemEntry &entry);
168 static bool supportsRmdirRecursively()
noexcept;
169 static bool rmdirRecursively(
const QFileSystemEntry &entry, QSystemError &error);
171 static bool createLink(
const QFileSystemEntry &source,
const QFileSystemEntry &target, QSystemError &error);
173 static bool copyFile(
const QFileSystemEntry &source,
const QFileSystemEntry &target, QSystemError &error);
174 static bool supportsMoveFileToTrash();
175 static bool moveFileToTrash(
const QFileSystemEntry &source, QFileSystemEntry &newLocation, QSystemError &error);
176 static bool renameFile(
const QFileSystemEntry &source,
const QFileSystemEntry &target, QSystemError &error);
177 static bool renameOverwriteFile(
const QFileSystemEntry &source,
const QFileSystemEntry &target, QSystemError &error);
178 static bool removeFile(
const QFileSystemEntry &entry, QSystemError &error);
180 static bool setPermissions(
const QFileSystemEntry &entry, QFile::Permissions permissions,
181 QSystemError &error);
184 static bool setFileTime(
const QFileSystemEntry &entry,
const QDateTime &newDate,
185 QFile::FileTime whatTime, QSystemError &error);
187 static bool setCurrentPath(
const QFileSystemEntry &entry);
188 static QFileSystemEntry currentPath();
190 static std::unique_ptr<QAbstractFileEngine>
191 createLegacyEngine(QFileSystemEntry &entry, QFileSystemMetaData &data);
192 static std::unique_ptr<QAbstractFileEngine>
193 createLegacyEngine(
const QString &fileName);
196 static QString slowCanonicalized(
const QString &path);
198 static void clearWinStatData(QFileSystemMetaData &data);
201 QFileSystemEntry canonicalNameViaRealpath(
const QFileSystemEntry &entry, QFileSystemMetaData &data);