diff options
Diffstat (limited to 'src/corelib/io/qfilesystemengine_unix.cpp')
-rw-r--r-- | src/corelib/io/qfilesystemengine_unix.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index f8cb130997..fa0e07b045 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -46,6 +46,8 @@ #include <QtCore/qvarlengtharray.h> #include <stdlib.h> // for realpath() +#include <sys/types.h> +#include <sys/stat.h> #include <unistd.h> #include <stdio.h> #include <errno.h> @@ -259,6 +261,20 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) } //static +QByteArray QFileSystemEngine::id(const QFileSystemEntry &entry) +{ + struct stat statResult; + if (stat(entry.nativeFilePath().constData(), &statResult)) { + qErrnoWarning("stat() failed for '%s'", entry.nativeFilePath().constData()); + return QByteArray(); + } + QByteArray result = QByteArray::number(quint64(statResult.st_dev), 16); + result += ':'; + result += QByteArray::number(quint64(statResult.st_ino), 16); + return result; +} + +//static QString QFileSystemEngine::resolveUserName(uint userId) { #if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) |