Utils: Introduce FilePath::fileSize()

And implement it locally and for docker.

Change-Id: I362f4cae95560836d9300473a286429eb4569329
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2021-07-23 12:06:38 +02:00
parent dbc708fe61
commit 764bf7396c
10 changed files with 46 additions and 0 deletions

View File

@@ -1275,6 +1275,20 @@ FilePath DockerDevice::symLinkTarget(const FilePath &filePath) const
return output.isEmpty() ? FilePath() : filePath.withNewPath(output);
}
qint64 DockerDevice::fileSize(const FilePath &filePath) const
{
QTC_ASSERT(handlesFile(filePath), return -1);
tryCreateLocalFileAccess();
if (hasLocalFileAccess()) {
const FilePath localAccess = mapToLocalAccess(filePath);
LOG("File size? " << filePath.toUserOutput() << localAccess.toUserOutput() << localAccess.fileSize());
return localAccess.fileSize();
}
const QString output = d->outputForRunInShell({"stat", {"-c", "%s", filePath.path()}});
return output.toLongLong();
}
static FilePaths filterEntriesHelper(const FilePath &base,
const QStringList &entries,
const QStringList &nameFilters,