Symlink contents should not be visited for the purpose of displaying sizes.
Not only is potentially misleading because the storage is actually used
elsewhere (the target location), it can be completely wrong as contents can
be visited multiple times, even recursively.
BUG: 434125
(cherry picked from commit
491068a4405f93ce66d4f49fa5ba5dee29e9546b)
}
if (allowedRecursiveLevel > 0) {
}
if (allowedRecursiveLevel > 0) {
-
- bool linkFound = false;
QString nameBuf = QStringLiteral("%1/%2").arg(dirPath, dirEntry->d_name);
QString nameBuf = QStringLiteral("%1/%2").arg(dirPath, dirEntry->d_name);
- if (dirEntry->d_type == DT_REG || dirEntry->d_type == DT_LNK) {
+ if (dirEntry->d_type == DT_REG) {
if (QT_STAT(nameBuf.toLocal8Bit(), &buf) == 0) {
if (QT_STAT(nameBuf.toLocal8Bit(), &buf) == 0) {
- if (S_ISDIR(buf.st_mode)) {
- // was a dir link, recurse
- linkFound = true;
- }
- if (dirEntry->d_type == DT_DIR || linkFound) {
- // recursion for dirs and dir links
+ if (dirEntry->d_type == DT_DIR) {
+ // recursion for dirs
size += walkDir(nameBuf, countHiddenFiles, countDirectoriesOnly, dirEntry, allowedRecursiveLevel - 1).size;
}
}
size += walkDir(nameBuf, countHiddenFiles, countDirectoriesOnly, dirEntry, allowedRecursiveLevel - 1).size;
}
}