QFileInfo Class
Die Klasse QFileInfo bietet eine betriebssystemunabhängige API zum Abrufen von Informationen über Dateisystemeinträge. Mehr...
Kopfzeile: | #include <QFileInfo> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QFileInfo ist Teil von Input/Output und Networking und Implicitly Shared Classes.
Diese Klasse ist gleichwertig vergleichbar.
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Funktionen
QFileInfo() | |
QFileInfo(const QFileDevice &file) | |
QFileInfo(const QString &path) | |
(since 6.0) | QFileInfo(const std::filesystem::path &file) |
QFileInfo(const QDir &dir, const QString &path) | |
(since 6.0) | QFileInfo(const QDir &dir, const std::filesystem::path &path) |
QFileInfo(const QFileInfo &fileinfo) | |
~QFileInfo() | |
QDir | absoluteDir() const |
QString | absoluteFilePath() const |
QString | absolutePath() const |
QString | baseName() const |
QDateTime | birthTime() const |
(since 6.6) QDateTime | birthTime(const QTimeZone &tz) const |
QString | bundleName() const |
bool | caching() const |
QString | canonicalFilePath() const |
QString | canonicalPath() const |
QString | completeBaseName() const |
QString | completeSuffix() const |
QDir | dir() const |
bool | exists() const |
QString | fileName() const |
QString | filePath() const |
QDateTime | fileTime(QFileDevice::FileTime time) const |
(since 6.6) QDateTime | fileTime(QFileDevice::FileTime time, const QTimeZone &tz) const |
(since 6.0) std::filesystem::path | filesystemAbsoluteFilePath() const |
(since 6.0) std::filesystem::path | filesystemAbsolutePath() const |
(since 6.0) std::filesystem::path | filesystemCanonicalFilePath() const |
(since 6.0) std::filesystem::path | filesystemCanonicalPath() const |
(since 6.0) std::filesystem::path | filesystemFilePath() const |
(since 6.2) std::filesystem::path | filesystemJunctionTarget() const |
(since 6.0) std::filesystem::path | filesystemPath() const |
(since 6.6) std::filesystem::path | filesystemReadSymLink() const |
(since 6.0) std::filesystem::path | filesystemSymLinkTarget() const |
QString | group() const |
uint | groupId() const |
bool | isAbsolute() const |
(since 6.4) bool | isAlias() const |
bool | isBundle() const |
bool | isDir() const |
bool | isExecutable() const |
bool | isFile() const |
bool | isHidden() const |
bool | isJunction() const |
bool | isNativePath() const |
bool | isReadable() const |
bool | isRelative() const |
bool | isRoot() const |
bool | isShortcut() const |
bool | isSymLink() const |
bool | isSymbolicLink() const |
bool | isWritable() const |
(since 6.2) QString | junctionTarget() const |
QDateTime | lastModified() const |
(since 6.6) QDateTime | lastModified(const QTimeZone &tz) const |
QDateTime | lastRead() const |
(since 6.6) QDateTime | lastRead(const QTimeZone &tz) const |
bool | makeAbsolute() |
QDateTime | metadataChangeTime() const |
(since 6.6) QDateTime | metadataChangeTime(const QTimeZone &tz) const |
QString | owner() const |
uint | ownerId() const |
QString | path() const |
bool | permission(QFileDevice::Permissions permissions) const |
QFileDevice::Permissions | permissions() const |
(since 6.6) QString | readSymLink() const |
void | refresh() |
void | setCaching(bool enable) |
void | setFile(const QString &path) |
(since 6.0) void | setFile(const std::filesystem::path &path) |
void | setFile(const QFileDevice &file) |
void | setFile(const QDir &dir, const QString &path) |
qint64 | size() const |
(since 6.0) void | stat() |
QString | suffix() const |
void | swap(QFileInfo &other) |
QString | symLinkTarget() const |
QFileInfo & | operator=(QFileInfo &&other) |
QFileInfo & | operator=(const QFileInfo &fileinfo) |
Statische öffentliche Mitglieder
bool | exists(const QString &path) |
Verwandte Nicht-Mitglieder
QFileInfoList | |
bool | operator!=(const QFileInfo &lhs, const QFileInfo &rhs) |
bool | operator==(const QFileInfo &lhs, const QFileInfo &rhs) |
Makros
(since 6.0) | QT_IMPLICIT_QFILEINFO_CONSTRUCTION |
Detaillierte Beschreibung
QFileInfo liefert Informationen über einen Dateisystemeintrag, wie Name, Pfad, Zugriffsrechte und ob es sich um eine reguläre Datei, ein Verzeichnis oder einen symbolischen Link handelt. Die Größe des Eintrags und der Zeitpunkt der letzten Änderung/Lesung sind ebenfalls verfügbar. QFileInfo kann auch verwendet werden, um Informationen über eine Qt-Ressource zu erhalten.
Ein QFileInfo kann auf einen Dateisystemeintrag verweisen, entweder mit einem absoluten oder einem relativen Pfad:
- Unter Unix beginnen absolute Pfade mit dem Verzeichnis-Trennzeichen
'/'
. Unter Windows beginnen absolute Pfade mit einer Laufwerksangabe (z.B.D:/
). - Relative Pfade beginnen mit einem Verzeichnisnamen oder einem regulären Dateinamen und geben den Pfad eines Dateisystemeintrags relativ zum aktuellen Arbeitsverzeichnis an.
Ein Beispiel für einen absoluten Pfad ist die Zeichenfolge "/tmp/quartz"
. Ein relativer Pfad kann wie "src/fatlib"
aussehen. Sie können die Funktion isRelative() verwenden, um zu prüfen, ob eine QFileInfo einen relativen oder einen absoluten Pfad verwendet. Sie können die Funktion makeAbsolute() aufrufen, um den Pfad einer relativen QFileInfo in einen absoluten Pfad zu konvertieren.
Hinweis: Pfade, die mit einem Doppelpunkt (:) beginnen, werden immer als absolut betrachtet, da sie ein QResource bezeichnen.
Der Dateisystem-Einstiegspfad, mit dem QFileInfo arbeitet, wird im Konstruktor oder später mit setFile() festgelegt. Verwenden Sie exists(), um zu sehen, ob der Eintrag tatsächlich existiert und size(), um seine Größe zu ermitteln.
Der Typ des Dateisystemeintrags wird mit isFile(), isDir() und isSymLink() ermittelt. Die Funktion symLinkTarget() liefert den absoluten Pfad des Ziels, auf das der Symlink zeigt.
Die Pfadelemente des Dateisystemeintrags können mit path() und fileName() extrahiert werden. Die Teile von fileName() können mit baseName(), suffix(), oder completeSuffix() extrahiert werden. QFileInfo-Objekte, die auf Verzeichnisse verweisen, die von Qt-Klassen erstellt wurden, haben kein nachgestelltes Verzeichnis-Trennzeichen '/'
. Wenn Sie in Ihren eigenen Datei-Info-Objekten Trennzeichen verwenden möchten, fügen Sie einfach eines an den Pfad des Eintrags an, der den Konstruktoren oder setFile() übergeben wird.
Datums- und zeitbezogene Informationen werden von birthTime(), fileTime(), lastModified(), lastRead() und metadataChangeTime() zurückgegeben. Informationen über Zugriffsberechtigungen können mit isReadable(), isWritable() und isExecutable() abgerufen werden. Informationen über die Eigentümerschaft erhalten Sie mit owner(), ownerId(), group() und groupId(). Mit der Funktion permission() können Sie auch Berechtigungen und Besitzverhältnisse in einer einzigen Anweisung untersuchen.
Symbolische Links und Abkürzungen
Unter Unix (einschließlich macOS und iOS) geben die Property-Getter-Funktionen in dieser Klasse die Eigenschaften wie Zeiten und Größe des Ziels zurück, nicht den Symlink, da Unix Symlinks transparent behandelt. Das Öffnen eines Symlinks mit QFile öffnet effektiv das Ziel des Links. Zum Beispiel:
#ifdef Q_OS_UNIX QFileInfo info1("/home/bob/bin/untabify"); info1.isSymLink(); // returns true info1.absoluteFilePath(); // returns "/home/bob/bin/untabify" info1.size(); // returns 56201 info1.symLinkTarget(); // returns "/opt/pretty++/bin/untabify" QFileInfo info2(info1.symLinkTarget()); info2.isSymLink(); // returns false info2.absoluteFilePath(); // returns "/opt/pretty++/bin/untabify" info2.size(); // returns 56201 #endif
Unter Windows werden Verknüpfungen (.lnk
Dateien) derzeit als Symlinks behandelt. Wie auf Unix-Systemen geben die Property Getter die Größe des Ziels zurück, nicht die .lnk
Datei selbst. Dieses Verhalten ist veraltet und wird wahrscheinlich in einer zukünftigen Version von Qt entfernt werden, nach der .lnk
Dateien wie normale Dateien behandelt werden.
#ifdef Q_OS_WIN QFileInfo info1("C:\\Users\\Bob\\untabify.lnk"); info1.isSymLink(); // returns true info1.absoluteFilePath(); // returns "C:/Users/Bob/untabify.lnk" info1.size(); // returns 63942 info1.symLinkTarget(); // returns "C:/Pretty++/untabify" QFileInfo info2(info1.symLinkTarget()); info2.isSymLink(); // returns false info2.absoluteFilePath(); // returns "C:/Pretty++/untabify" info2.size(); // returns 63942 #endif
NTFS-Berechtigungen
Auf NTFS-Dateisystemen ist die Überprüfung von Besitz und Berechtigungen aus Leistungsgründen standardmäßig deaktiviert. Um sie zu aktivieren, fügen Sie die folgende Zeile ein:
extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;
Die Berechtigungsprüfung wird dann ein- und ausgeschaltet, indem qt_ntfs_permission_lookup
um 1 erhöht oder erniedrigt wird.
qt_ntfs_permission_lookup++; // turn checking on qt_ntfs_permission_lookup--; // turn it off again
Hinweis: Da es sich um eine nicht-atomare globale Variable handelt, ist es nur dann sicher, qt_ntfs_permission_lookup
zu inkrementieren oder zu dekrementieren, wenn andere Threads als der Haupt-Thread gestartet wurden oder nachdem jeder andere Thread als der Haupt-Thread beendet wurde.
Hinweis: Ab Qt 6.6 ist die Variable qt_ntfs_permission_lookup
veraltet. Bitte verwenden Sie die folgenden Alternativen.
Der sichere und einfache Weg zur Verwaltung von Berechtigungsprüfungen ist die Verwendung der RAII-Klasse QNtfsPermissionCheckGuard
.
void complexFunction() { QNtfsPermissionCheckGuard permissionGuard; // check is enabled // do complex things here that need permission check enabled } // as the guard goes out of scope the check is disabled
Wenn Sie eine feinere Kontrolle benötigen, ist es möglich, die Berechtigung stattdessen mit den folgenden Funktionen zu verwalten:
qAreNtfsPermissionChecksEnabled(); // Status prüfenqEnableNtfsPermissionChecks(); // turn checking on qDisableNtfsPermissionChecks(); // turn it off again
Überlegungen zur Leistung
Einige der Funktionen von QFileInfo müssen das Dateisystem abfragen, aber aus Leistungsgründen arbeiten einige Funktionen nur mit dem Pfadstring. Zum Beispiel: Um den absoluten Pfad eines relativen Eintrags zurückzugeben, muss absolutePath() das Dateisystem abfragen. Die Funktion path() hingegen kann direkt mit dem Dateinamen arbeiten und ist daher schneller.
QFileInfo speichert auch Informationen über den Dateisystemeintrag, auf den es sich bezieht. Da das Dateisystem von anderen Benutzern oder Programmen oder sogar von anderen Teilen desselben Programms geändert werden kann, gibt es eine Funktion, die die in QFileInfo gespeicherten Informationen auffrischt, nämlich refresh(). Um das Zwischenspeichern von QFileInfo auszuschalten (d.h. es zu zwingen, das zugrundeliegende Dateisystem jedes Mal abzufragen, wenn Sie Informationen von ihm anfordern), rufen Sie setCaching(false) auf.
Das Abrufen von Informationen aus dem Dateisystem erfolgt typischerweise durch den Aufruf von (möglicherweise) teuren Systemfunktionen, so dass QFileInfo (abhängig von der Implementierung) möglicherweise nicht alle Informationen aus dem Dateisystem beim Aufbau abruft. Um sicherzustellen, dass alle Informationen sofort aus dem Dateisystem gelesen werden, verwenden Sie die Memberfunktion stat().
birthTime(), fileTime(), lastModified(), lastRead() und metadataChangeTime() geben standardmäßig Zeiten in Ortszeit zurück. Da die native Dateisystem-API in der Regel UTC verwendet, erfordert dies eine Konvertierung. Wenn Sie die Ortszeit nicht wirklich benötigen, können Sie dies vermeiden, indem Sie die Zeit in QTimeZone::UTC direkt abfragen.
Plattformspezifische Probleme
Unter Android gelten einige Einschränkungen beim Umgang mit Inhalts-URIs:
- Zugriffsberechtigungen können erforderlich sein, wenn der Benutzer über QFileDialog aufgefordert wird, den nativen Dateipicker von Android zu verwenden.
- Achten Sie auf die Einhaltung der Scoped-Storage-Richtlinien, z. B. die Verwendung app-spezifischer Verzeichnisse anstelle anderer öffentlicher externer Verzeichnisse. Weitere Informationen finden Sie auch unter Best Practices für die Speicherung.
- Aufgrund des Designs der Qt-APIs (z. B. QFile) ist es nicht möglich, die letzteren APIs vollständig in die MediaStore-APIs von Android zu integrieren.
Dokumentation der Mitgliedsfunktionen
QFileInfo::QFileInfo()
Konstruiert ein leeres QFileInfo-Objekt, das auf keinen Dateisystemeintrag verweist.
Siehe auch setFile().
[explicit]
QFileInfo::QFileInfo(const QFileDevice &file)
Konstruiert eine neue QFileInfo, die Informationen über die Datei file enthält.
Wenn file einen relativen Pfad hat, wird die QFileInfo auch einen relativen Pfad haben.
Siehe auch isRelative().
[explicit]
QFileInfo::QFileInfo(const QString &path)
Konstruiert eine QFileInfo, die Informationen über einen Dateisystemeintrag unter path enthält, der absolut oder relativ sein kann.
Wenn path relativ ist, wird die QFileInfo auch einen relativen Pfad haben.
Siehe auch setFile(), isRelative(), QDir::setCurrent(), und QDir::isRelativePath().
[since 6.0]
QFileInfo::QFileInfo(const std::filesystem::path &file)
Konstruiert eine neue QFileInfo, die Informationen über die angegebene file liefert.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch setFile(), isRelative(), QDir::setCurrent(), und QDir::isRelativePath().
[explicit]
QFileInfo::QFileInfo(const QDir &dir, const QString &path)
Konstruiert eine neue QFileInfo, die Informationen über den angegebenen Dateisystemeintrag path enthält, der relativ zum Verzeichnis dir ist.
Wenn dir einen relativen Pfad hat, wird die QFileInfo auch einen relativen Pfad haben.
Wenn path absolut ist, dann wird das durch dir angegebene Verzeichnis nicht beachtet.
Siehe auch isRelative().
[since 6.0]
QFileInfo::QFileInfo(const QDir &dir, const std::filesystem::path &path)
Konstruiert eine neue QFileInfo, die Informationen über den Dateisystemeintrag unter path enthält, der relativ zum Verzeichnis dir ist.
Wenn dir einen relativen Pfad hat, wird die QFileInfo auch einen relativen Pfad haben.
Wenn path absolut ist, dann wird das durch dir angegebene Verzeichnis ignoriert.
Diese Funktion wurde in Qt 6.0 eingeführt.
QFileInfo::QFileInfo(const QFileInfo &fileinfo)
Konstruiert eine neue QFileInfo, die eine Kopie der angegebenen fileinfo ist.
[noexcept]
QFileInfo::~QFileInfo()
Zerstört die QFileInfo und macht ihre Ressourcen frei.
QDir QFileInfo::absoluteDir() const
Gibt ein QDir Objekt zurück, das den absoluten Pfad des übergeordneten Verzeichnisses des Dateisystemeintrags angibt, auf den sich diese QFileInfo bezieht.
// Bei einem aktuellen Arbeitsverzeichnis von "/home/user/Documents/memos/"QFileInfo info1(u"relativeFile"_s);qDebug() << info1.absolutePath(); // "/home/user/Documents/memos/" qDebug() << info1.baseName(); // "relativeFile" qDebug() << info1.absoluteDir(); // QDir(u"/home/user/Documents/memos"_s) qDebug() << info1.absoluteDir().path(); // "/home/user/Documents/memos" // Eine QFileInfo über ein VerzeichnisQFileInfo info2(u"/home/user/Dokumente/memos"_s);qDebug() << info2.absolutePath(); // "/home/user/Documents" qDebug() << info2.baseName(); // "memos" qDebug() << info2.absoluteDir(); // QDir(u"/home/user/Documents"_s) qDebug() << info2.absoluteDir().path(); // "/home/user/Documents"
Siehe auch dir(), filePath(), fileName(), und isRelative().
QString QFileInfo::absoluteFilePath() const
Gibt den absoluten vollständigen Pfad zu dem Dateisystemeintrag zurück, auf den sich dieser QFileInfo bezieht, einschließlich des Namens des Eintrags.
Unter Unix beginnen absolute Pfade mit dem Verzeichnis-Trennzeichen '/'
. Unter Windows beginnen absolute Pfade mit einer Laufwerksangabe (z. B. D:/
).
Unter Windows beginnen die Pfade von Netzwerkfreigaben, die nicht auf einen Laufwerksbuchstaben abgebildet sind, mit //sharename/
.
QFileInfo werden Laufwerksbuchstaben in Großbuchstaben geschrieben. Beachten Sie, dass dies bei QDir nicht der Fall ist. Das folgende Codeschnipsel zeigt dies.
Diese Funktion gibt dasselbe zurück wie filePath(), es sei denn, isRelative() ist wahr. Im Gegensatz zu canonicalFilePath() werden symbolische Links oder überflüssige "."- oder ".."-Elemente nicht unbedingt entfernt.
Warnung: Wenn filePath() leer ist, ist das Verhalten dieser Funktion undefiniert.
Siehe auch filePath(), canonicalFilePath(), und isRelative().
QString QFileInfo::absolutePath() const
Gibt den absoluten Pfad des Dateisystemeintrags zurück, auf den sich dieser QFileInfo bezieht, ohne den Namen des Eintrags.
Unter Unix beginnen absolute Pfade mit dem Verzeichnis-Trennzeichen '/'
. Unter Windows beginnen absolute Pfade mit einer Laufwerksangabe (z. B. D:/
).
Unter Windows beginnen die Pfade von Netzwerkfreigaben, die nicht auf einen Laufwerksbuchstaben abgebildet sind, mit //sharename/
.
Im Gegensatz zu canonicalPath() werden symbolische Links oder redundante "."- oder ".."-Elemente nicht unbedingt entfernt.
Achtung! Wenn filePath() leer ist, ist das Verhalten dieser Funktion undefiniert.
Siehe auch absoluteFilePath(), path(), canonicalPath(), fileName(), und isRelative().
QString QFileInfo::baseName() const
Gibt den Basisnamen der Datei ohne den Pfad zurück.
Der Basisname besteht aus allen Zeichen in der Datei bis zum (aber nicht einschließlich) ersten '.' Zeichen.
Beispiel:
Der Basisname einer Datei wird auf allen Plattformen gleich berechnet, unabhängig von den Konventionen für die Benennung von Dateien (z. B. hat ".bashrc" unter Unix einen leeren Basisnamen, und die Endung ist "bashrc").
Siehe auch fileName(), suffix(), completeSuffix(), und completeBaseName().
QDateTime QFileInfo::birthTime() const
Gibt das Datum und die Uhrzeit zurück, zu der die Datei erstellt (geboren) wurde, in Ortszeit.
Wenn die Geburtszeit der Datei nicht verfügbar ist, gibt diese Funktion ein ungültiges QDateTime zurück.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Diese Funktion überlädt QFileInfo::birthTime(const QTimeZone &tz) und gibt das Gleiche zurück wie birthTime(QTimeZone::LocalTime)
.
Siehe auch lastModified(), lastRead(), metadataChangeTime(), und fileTime().
[since 6.6]
QDateTime QFileInfo::birthTime(const QTimeZone &tz) const
Gibt das Datum und die Uhrzeit zurück, zu der die Datei erstellt wurde (born).
Die zurückgegebene Zeit ist in der Zeitzone, die durch tz angegeben wird. Sie können zum Beispiel QTimeZone::LocalTime oder QTimeZone::UTC verwenden, um die Zeit in der lokalen Zeitzone bzw. in UTC zu erhalten. Da die native Dateisystem-API in der Regel UTC verwendet, ist die Verwendung von QTimeZone::UTC oft schneller, da sie keine Konvertierungen erfordert.
Wenn die Geburtszeit der Datei nicht verfügbar ist, gibt diese Funktion eine ungültige QDateTime zurück.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Diese Funktion wurde in Qt 6.6 eingeführt.
Siehe auch lastModified(const QTimeZone &), lastRead(const QTimeZone &), metadataChangeTime(const QTimeZone &), und fileTime(QFileDevice::FileTime, const QTimeZone &).
QString QFileInfo::bundleName() const
Gibt den Namen des Bundles zurück.
Unter macOS und iOS wird der richtige lokalisierte Name für ein Bundle zurückgegeben, wenn der Pfad isBundle() lautet. Auf allen anderen Plattformen wird ein leeres QString zurückgegeben.
Beispiel:
Siehe auch isBundle(), filePath(), baseName(), und suffix().
bool QFileInfo::caching() const
Gibt true
zurück, wenn die Zwischenspeicherung aktiviert ist; andernfalls wird false
zurückgegeben.
Siehe auch setCaching() und refresh().
QString QFileInfo::canonicalFilePath() const
Gibt den kanonischen Pfad des Dateisystemeintrags zurück, einschließlich des Namens des Eintrags, d. h. einen absoluten Pfad ohne symbolische Links oder redundante '.'
oder '..'
Elemente.
Existiert der Eintrag nicht, gibt canonicalFilePath() eine leere Zeichenkette zurück.
Siehe auch filePath(), absoluteFilePath(), und dir().
QString QFileInfo::canonicalPath() const
Gibt den kanonischen Pfad des Dateisystemeintrags zurück (ohne den Namen des Eintrags), d. h. einen absoluten Pfad ohne symbolische Links oder überflüssige "."- oder ".."-Elemente.
Wenn der Eintrag nicht existiert, gibt diese Methode einen leeren String zurück.
Siehe auch path() und absolutePath().
QString QFileInfo::completeBaseName() const
Gibt den vollständigen Basisnamen der Datei ohne den Pfad zurück.
Der vollständige Basisname besteht aus allen Zeichen in der Datei bis zum (aber nicht einschließlich) letzten '.'-Zeichen.
Beispiel:
Siehe auch fileName(), suffix(), completeSuffix(), und baseName().
QString QFileInfo::completeSuffix() const
Gibt das vollständige Suffix (Erweiterung) der Datei zurück.
Das vollständige Suffix besteht aus allen Zeichen in der Datei nach (aber nicht einschließlich) dem ersten '.'.
Beispiel:
Siehe auch fileName(), suffix(), baseName(), und completeBaseName().
QDir QFileInfo::dir() const
Gibt ein QDir Objekt zurück, das den Pfad des übergeordneten Verzeichnisses des Dateisystemeintrags darstellt, auf den sich dieser QFileInfo bezieht.
Hinweis: Das zurückgegebene QDir entspricht immer dem übergeordneten Verzeichnis des Objekts, auch wenn das QFileInfo ein Verzeichnis darstellt.
Für jeden der folgenden Fälle gibt dir() den QDir "~/examples/191697"
zurück.
QFileInfo fileInfo1("~/examples/191697/."); QFileInfo fileInfo2("~/examples/191697/.."); QFileInfo fileInfo3("~/examples/191697/main.cpp");
Für jede der folgenden Optionen gibt dir() den QDir "."
zurück.
Siehe auch absolutePath(), filePath(), fileName(), isRelative(), und absoluteDir().
bool QFileInfo::exists() const
Gibt true
zurück, wenn der Dateisystemeintrag, auf den dieser QFileInfo verweist, existiert; andernfalls wird false
zurückgegeben.
Hinweis: Wenn der Eintrag ein Symlink ist, der auf ein nicht existierendes Ziel zeigt, gibt diese Methode false
zurück.
[static]
bool QFileInfo::exists(const QString &path)
Gibt true
zurück, wenn der Dateisystemeintrag path existiert; andernfalls wird false
zurückgegeben.
Hinweis: Wenn path ein Symlink ist, der auf ein nicht existierendes Ziel zeigt, gibt diese Methode false
zurück.
Hinweis: Die Verwendung dieser Funktion ist schneller als die Verwendung von QFileInfo(path).exists()
für den Dateisystemzugriff.
QString QFileInfo::fileName() const
Gibt den Namen des Dateisystemeintrags zurück, auf den sich dieser QFileInfo bezieht, ohne den Pfad.
Beispiel:
Hinweis: Wenn dieser QFileInfo ein Pfad übergeben wird, der mit einem Verzeichnistrennzeichen '/'
endet, wird der Namensteil des Eintrags als leer betrachtet.
Siehe auch isRelative(), filePath(), baseName(), und suffix().
QString QFileInfo::filePath() const
Gibt den Pfad des Dateisystemeintrags zurück, auf den sich diese QFileInfo bezieht; der Pfad kann absolut oder relativ sein.
Siehe auch absoluteFilePath(), canonicalFilePath(), und isRelative().
QDateTime QFileInfo::fileTime(QFileDevice::FileTime time) const
Gibt die durch time angegebene Dateizeit zurück.
Wenn die Zeit nicht bestimmt werden kann, wird eine ungültige Datumszeit zurückgegeben.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Diese Funktion überlädt QFileInfo::fileTime(QFileDevice::FileTime, const QTimeZone &) und gibt das Gleiche zurück wie fileTime(time, QTimeZone::LocalTime)
.
Siehe auch birthTime(), lastModified(), lastRead(), und metadataChangeTime().
[since 6.6]
QDateTime QFileInfo::fileTime(QFileDevice::FileTime time, const QTimeZone &tz) const
Gibt die durch time angegebene Dateizeit zurück.
Die zurückgegebene Zeit ist in der Zeitzone, die durch tz angegeben ist. Sie können zum Beispiel QTimeZone::LocalTime oder QTimeZone::UTC verwenden, um die Zeit in der lokalen Zeitzone bzw. in UTC zu erhalten. Da die native Dateisystem-API in der Regel UTC verwendet, ist die Verwendung von QTimeZone::UTC oft schneller, da sie keine Konvertierungen erfordert.
Wenn die Zeit nicht ermittelt werden kann, wird eine ungültige Datumszeit zurückgegeben.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Diese Funktion wurde in Qt 6.6 eingeführt.
Siehe auch birthTime(const QTimeZone &), lastModified(const QTimeZone &), lastRead(const QTimeZone &), metadataChangeTime(const QTimeZone &), und QDateTime::isValid().
[since 6.0]
std::filesystem::path QFileInfo::filesystemAbsoluteFilePath() const
Gibt absoluteFilePath() als std::filesystem::path
zurück.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch absoluteFilePath().
[since 6.0]
std::filesystem::path QFileInfo::filesystemAbsolutePath() const
Gibt absolutePath() als std::filesystem::path
zurück.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch absolutePath().
[since 6.0]
std::filesystem::path QFileInfo::filesystemCanonicalFilePath() const
Gibt canonicalFilePath() als std::filesystem::path
zurück.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch canonicalFilePath().
[since 6.0]
std::filesystem::path QFileInfo::filesystemCanonicalPath() const
Gibt canonicalPath() als std::filesystem::path
zurück.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch canonicalPath().
[since 6.0]
std::filesystem::path QFileInfo::filesystemFilePath() const
Gibt filePath() als std::filesystem::path
zurück.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch filePath().
[since 6.2]
std::filesystem::path QFileInfo::filesystemJunctionTarget() const
Gibt junctionTarget() als std::filesystem::path
zurück.
Diese Funktion wurde in Qt 6.2 eingeführt.
Siehe auch junctionTarget().
[since 6.0]
std::filesystem::path QFileInfo::filesystemPath() const
Gibt path() als std::filesystem::path
zurück.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch path().
[since 6.6]
std::filesystem::path QFileInfo::filesystemReadSymLink() const
Gibt readSymLink() als std::filesystem::path
zurück.
Diese Funktion wurde in Qt 6.6 eingeführt.
Siehe auch readSymLink().
[since 6.0]
std::filesystem::path QFileInfo::filesystemSymLinkTarget() const
Gibt symLinkTarget() als std::filesystem::path
zurück.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch symLinkTarget().
QString QFileInfo::group() const
Gibt die Gruppe der Datei zurück. Unter Windows, auf Systemen, auf denen Dateien keine Gruppen haben, oder wenn ein Fehler auftritt, wird ein leerer String zurückgegeben.
Diese Funktion kann unter Unix sehr zeitaufwändig sein (in der Größenordnung von Millisekunden).
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Siehe auch groupId(), owner(), und ownerId().
uint QFileInfo::groupId() const
Gibt die ID der Gruppe zurück, zu der die Datei gehört.
Unter Windows und auf Systemen, auf denen Dateien keine Gruppen haben, gibt diese Funktion immer (uint) -2 zurück.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Siehe auch group(), owner(), und ownerId().
bool QFileInfo::isAbsolute() const
Gibt true
zurück, wenn der Pfad des Dateisystemeintrags absolut ist, andernfalls wird false
zurückgegeben (d. h. der Pfad ist relativ).
Hinweis: Pfade, die mit einem Doppelpunkt (:) beginnen, werden immer als absolut betrachtet, da sie ein QResource bezeichnen.
Siehe auch isRelative().
[since 6.4]
bool QFileInfo::isAlias() const
Gibt true
zurück, wenn dieses Objekt auf einen Alias verweist; andernfalls wird false
zurückgegeben.
Aliase gibt es nur unter macOS. Sie werden wie normale Dateien behandelt, so dass das Öffnen eines Alias die Datei selbst öffnet. Um die Datei oder das Verzeichnis zu öffnen, auf das ein Alias verweist, verwenden Sie symLinkTarget().
Hinweis: Auch wenn ein Alias auf eine nicht existierende Datei zeigt, gibt isAlias() true zurück.
Diese Funktion wurde in Qt 6.4 eingeführt.
Siehe auch isFile(), isDir(), isSymLink(), und symLinkTarget().
bool QFileInfo::isBundle() const
Gibt true
zurück, wenn dieses Objekt auf ein Bundle oder auf einen symbolischen Link zu einem Bundle unter macOS und iOS zeigt; andernfalls false
.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Siehe auch isDir(), isSymLink(), und isFile().
bool QFileInfo::isDir() const
Gibt true
zurück, wenn dieses Objekt auf ein Verzeichnis oder einen symbolischen Link auf ein Verzeichnis zeigt. Gibt false
zurück, wenn das Objekt auf etwas zeigt, das kein Verzeichnis ist (z. B. eine Datei) oder das nicht existiert.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Siehe auch isFile(), isSymLink(), und isBundle().
bool QFileInfo::isExecutable() const
Gibt true
zurück, wenn der Dateisystemeintrag, auf den QFileInfo verweist, ausführbar ist; andernfalls gibt sie false
zurück.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Siehe auch isReadable(), isWritable(), und permission().
bool QFileInfo::isFile() const
Gibt true
zurück, wenn dieses Objekt auf eine Datei oder einen symbolischen Link auf eine Datei zeigt. Gibt false
zurück, wenn das Objekt auf etwas zeigt, das keine Datei ist (z. B. ein Verzeichnis) oder das nicht existiert.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Siehe auch isDir(), isSymLink(), und isBundle().
bool QFileInfo::isHidden() const
Gibt true
zurück, wenn der Dateisystemeintrag, auf den sich dieser QFileInfo bezieht, `hidden' ist; andernfalls gibt er false
zurück.
Hinweis: Diese Funktion gibt true
für die speziellen Einträge "." und ".." unter Unix zurück, auch wenn QDir::entryList sie wie gezeigt behandelt. Da diese Funktion den Dateinamen untersucht, wird unter Unix der Name des Symlinks untersucht, wenn diese Datei ein Symlink ist, und nicht der Name des Ziels.
Unter Windows gibt diese Funktion true
zurück, wenn die Zieldatei versteckt ist (nicht der Symlink).
bool QFileInfo::isJunction() const
Gibt true
zurück, wenn das Objekt auf eine Verzweigung zeigt; andernfalls wird false
zurückgegeben.
Verzweigungen gibt es nur im NTFS-Dateisystem von Windows, und sie werden normalerweise mit dem Befehl mklink
erstellt. Sie können als Symlinks für Verzeichnisse betrachtet werden und können nur für absolute Pfade auf dem lokalen Volume erstellt werden.
bool QFileInfo::isNativePath() const
Gibt true
zurück, wenn der Dateipfad direkt mit nativen APIs verwendet werden kann. Gibt false
zurück, wenn die Datei ansonsten von einem virtuellen Dateisystem innerhalb von Qt unterstützt wird, wie z.B. dem Qt Resource System.
Hinweis: Native Pfade können immer noch die Konvertierung von Pfadseparatoren und Zeichenkodierung erfordern, abhängig von der Plattform und den Eingabeanforderungen der nativen API.
Siehe auch QDir::toNativeSeparators(), QFile::encodeName(), filePath(), absoluteFilePath(), und canonicalFilePath().
bool QFileInfo::isReadable() const
Gibt true
zurück, wenn der Benutzer den Dateisystemeintrag, auf den sich QFileInfo bezieht, lesen kann; andernfalls wird false
zurückgegeben.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Hinweis: Wenn die Prüfung NTFS permissions nicht aktiviert wurde, zeigt das Ergebnis unter Windows lediglich an, ob der Eintrag existiert.
Siehe auch isWritable(), isExecutable(), und permission().
bool QFileInfo::isRelative() const
Gibt true
zurück, wenn der Pfad des Dateisystemeintrags relativ ist, andernfalls false
(d. h., der Pfad ist absolut).
Unter Unix beginnen absolute Pfade mit dem Verzeichnis-Trennzeichen '/'
. Unter Windows beginnen absolute Pfade mit einer Laufwerksangabe (z. B. D:/
).
Hinweis: Pfade, die mit einem Doppelpunkt (:) beginnen, gelten immer als absolut, da sie ein QResource bezeichnen.
Siehe auch isAbsolute().
bool QFileInfo::isRoot() const
Gibt true
zurück, wenn das Objekt auf ein Verzeichnis oder einen symbolischen Link auf ein Verzeichnis zeigt und dieses Verzeichnis das Stammverzeichnis ist; andernfalls wird false
zurückgegeben.
bool QFileInfo::isShortcut() const
Gibt true
zurück, wenn dieses Objekt auf eine Verknüpfung zeigt; andernfalls wird false
zurückgegeben.
Verknüpfungen existieren nur unter Windows und sind typischerweise .lnk
Dateien. Zum Beispiel wird true für Verknüpfungen (*.lnk
Dateien) unter Windows zurückgegeben, aber false wird unter Unix (einschließlich macOS und iOS) zurückgegeben.
Die Verknüpfungsdateien (.lnk) werden wie normale Dateien behandelt. Wenn Sie diese öffnen, wird die Datei .lnk
selbst geöffnet. Um die Datei zu öffnen, auf die eine Verknüpfung verweist, muss sie symLinkTarget() auf einer Verknüpfung verwenden.
Hinweis: Auch wenn eine Verknüpfung (broken shortcut) auf eine nicht existierende Datei verweist, gibt isShortcut() true zurück.
Siehe auch isFile(), isDir(), isSymbolicLink(), und symLinkTarget().
bool QFileInfo::isSymLink() const
Gibt true
zurück, wenn dieses Objekt auf einen symbolischen Link, eine Verknüpfung oder einen Alias zeigt; andernfalls wird false
zurückgegeben.
Symbolische Links existieren unter Unix (einschließlich macOS und iOS) und Windows und werden typischerweise mit den Befehlen ln -s
bzw. mklink
erstellt. Das Öffnen eines symbolischen Links öffnet effektiv den link's target.
Darüber hinaus wird true für Verknüpfungen (*.lnk
Dateien) unter Windows und Aliase unter macOS zurückgegeben. Dieses Verhalten ist veraltet und wird sich wahrscheinlich in einer zukünftigen Version von Qt ändern. Das Öffnen einer Verknüpfung oder eines Alias öffnet die .lnk
oder Alias-Datei selbst.
Beispiel:
QFileInfo info(fileName); if (info.isSymLink()) fileName = info.symLinkTarget();
Hinweis: exists() gibt true
zurück, wenn der Symlink auf ein existierendes Ziel zeigt, andernfalls gibt es false
zurück.
Siehe auch isFile(), isDir(), und symLinkTarget().
bool QFileInfo::isSymbolicLink() const
Gibt true
zurück, wenn dieses Objekt auf einen symbolischen Link zeigt; andernfalls wird false
zurückgegeben.
Symbolische Links existieren unter Unix (einschließlich macOS und iOS) und Windows (NTFS-symlink) und werden typischerweise mit den Befehlen ln -s
bzw. mklink
erstellt.
Unix behandelt Symlinks transparent. Das Öffnen eines symbolischen Links öffnet effektiv den link's target.
Im Gegensatz zu isSymLink() wird für Verknüpfungen (*.lnk
Dateien) unter Windows und Aliase unter macOS false zurückgegeben. Verwenden Sie stattdessen QFileInfo::isShortcut() und QFileInfo::isAlias().
Hinweis: exists() gibt true
zurück, wenn der Symlink auf ein bestehendes Ziel zeigt, andernfalls gibt es false
zurück.
Siehe auch isFile(), isDir(), isShortcut(), und symLinkTarget().
bool QFileInfo::isWritable() const
Gibt true
zurück, wenn der Benutzer in den Dateisystemeintrag, auf den sich QFileInfo bezieht, schreiben kann; andernfalls gibt sie false
zurück.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Hinweis: Wenn die Prüfung NTFS permissions nicht aktiviert wurde, gibt das Ergebnis unter Windows lediglich an, ob der Eintrag als schreibgeschützt markiert ist.
Siehe auch isReadable(), isExecutable(), und permission().
[since 6.2]
QString QFileInfo::junctionTarget() const
Löst eine NTFS-Verzweigung in den von ihr referenzierten Pfad auf.
Gibt den absoluten Pfad zu dem Verzeichnis zurück, auf das eine NTFS-Verzweigung verweist, oder einen leeren String, wenn das Objekt keine NTFS-Verzweigung ist.
Es gibt keine Garantie, dass das von der NTFS-Junction genannte Verzeichnis tatsächlich existiert.
Diese Funktion wurde in Qt 6.2 eingeführt.
Siehe auch isJunction(), isFile(), isDir(), isSymLink(), isSymbolicLink(), und isShortcut().
QDateTime QFileInfo::lastModified() const
Gibt das Datum und die Uhrzeit zurück, zu der die Datei zuletzt geändert wurde.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Diese Funktion überlädt QFileInfo::lastModified(const QTimeZone &) und gibt dasselbe zurück wie lastModified(QTimeZone::LocalTime)
.
Siehe auch birthTime(), lastRead(), metadataChangeTime(), und fileTime().
[since 6.6]
QDateTime QFileInfo::lastModified(const QTimeZone &tz) const
Gibt das Datum und die Uhrzeit zurück, zu der die Datei zuletzt geändert wurde.
Die zurückgegebene Zeit ist in der Zeitzone, die durch tz angegeben wird. Sie können zum Beispiel QTimeZone::LocalTime oder QTimeZone::UTC verwenden, um die Zeit in der lokalen Zeitzone bzw. in UTC zu erhalten. Da die native Dateisystem-API in der Regel UTC verwendet, ist die Verwendung von QTimeZone::UTC oft schneller, da sie keine Konvertierungen erfordert.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Diese Funktion wurde in Qt 6.6 eingeführt.
Siehe auch birthTime(const QTimeZone &), lastRead(const QTimeZone &), metadataChangeTime(const QTimeZone &), und fileTime(QFileDevice::FileTime, const QTimeZone &).
QDateTime QFileInfo::lastRead() const
Gibt das Datum und die Uhrzeit zurück, zu der die Datei zuletzt gelesen (zugegriffen) wurde.
Auf Plattformen, auf denen diese Informationen nicht verfügbar sind, wird die gleiche Zeit zurückgegeben wie bei lastModified().
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Diese Funktion überlädt QFileInfo::lastRead(const QTimeZone &) und gibt dasselbe zurück wie lastRead(QTimeZone::LocalTime)
.
Siehe auch birthTime(), lastModified(), metadataChangeTime(), und fileTime().
[since 6.6]
QDateTime QFileInfo::lastRead(const QTimeZone &tz) const
Gibt das Datum und die Uhrzeit zurück, zu der die Datei zuletzt gelesen (zugegriffen) wurde.
Die zurückgegebene Zeit ist in der Zeitzone, die durch tz angegeben wird. Sie können zum Beispiel QTimeZone::LocalTime oder QTimeZone::UTC verwenden, um die Zeit in der lokalen Zeitzone bzw. in UTC zu erhalten. Da die native Dateisystem-API in der Regel UTC verwendet, ist die Verwendung von QTimeZone::UTC oft schneller, da sie keine Konvertierungen erfordert.
Auf Plattformen, auf denen diese Information nicht verfügbar ist, wird die gleiche Zeit wie lastModified() zurückgegeben.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Diese Funktion wurde in Qt 6.6 eingeführt.
Siehe auch birthTime(const QTimeZone &), lastModified(const QTimeZone &), metadataChangeTime(const QTimeZone &), und fileTime(QFileDevice::FileTime, const QTimeZone &).
bool QFileInfo::makeAbsolute()
Wenn der Pfad des Dateisystemeintrags relativ ist, wandelt diese Methode ihn in einen absoluten Pfad um und gibt true
zurück; wenn der Pfad bereits absolut ist, gibt diese Methode false
zurück.
Siehe auch filePath() und isRelative().
QDateTime QFileInfo::metadataChangeTime() const
Gibt das Datum und die Uhrzeit zurück, zu der die Metadaten der Datei zuletzt geändert wurden (in Ortszeit).
Eine Metadatenänderung findet statt, wenn die Datei zum ersten Mal erstellt wird, aber auch immer dann, wenn der Benutzer Inode-Informationen schreibt oder setzt (z. B. wenn er die Dateirechte ändert).
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Diese Funktion überlädt QFileInfo::metadataChangeTime(const QTimeZone &tz) und gibt dasselbe zurück wie metadataChangeTime(QTimeZone::LocalTime)
.
Siehe auch birthTime(), lastModified(), lastRead(), und fileTime().
[since 6.6]
QDateTime QFileInfo::metadataChangeTime(const QTimeZone &tz) const
Gibt das Datum und die Uhrzeit zurück, zu der die Metadaten der Datei zuletzt geändert wurden. Eine Metadatenänderung findet statt, wenn die Datei zum ersten Mal erstellt wird, aber auch immer dann, wenn der Benutzer Inode-Informationen schreibt oder setzt (z. B. wenn er die Dateiberechtigungen ändert).
Die zurückgegebene Zeit ist in der Zeitzone, die durch tz angegeben wurde. Sie können zum Beispiel QTimeZone::LocalTime oder QTimeZone::UTC verwenden, um die Zeit in der lokalen Zeitzone bzw. in UTC zu erhalten. Da die native Dateisystem-API in der Regel UTC verwendet, ist die Verwendung von QTimeZone::UTC oft schneller, da sie keine Konvertierungen erfordert.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Diese Funktion wurde in Qt 6.6 eingeführt.
Siehe auch birthTime(const QTimeZone &), lastModified(const QTimeZone &), lastRead(const QTimeZone &), und fileTime(QFileDevice::FileTime time, const QTimeZone &).
QString QFileInfo::owner() const
Gibt den Eigentümer der Datei zurück. Auf Systemen, auf denen Dateien keine Besitzer haben, oder wenn ein Fehler auftritt, wird eine leere Zeichenkette zurückgegeben.
Diese Funktion kann unter Unix sehr zeitaufwändig sein (in der Größenordnung von Millisekunden). Unter Windows wird eine leere Zeichenkette zurückgegeben, es sei denn, die NTFS permissions Prüfung wurde aktiviert.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Siehe auch ownerId(), group(), und groupId().
uint QFileInfo::ownerId() const
Gibt die ID des Besitzers der Datei zurück.
Unter Windows und auf Systemen, auf denen Dateien keine Besitzer haben, gibt diese Funktion ((uint) -2) zurück.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Siehe auch owner(), group(), und groupId().
QString QFileInfo::path() const
Gibt den Pfad des Dateisystemeintrags zurück, auf den sich dieser QFileInfo bezieht, ohne den Namen des Eintrags.
Hinweis: Wenn dieser QFileInfo ein Pfad übergeben wird, der mit einem Verzeichnistrennzeichen '/'
endet, wird der Namensteil des Eintrags als leer betrachtet. In diesem Fall gibt diese Funktion den gesamten Pfad zurück.
Siehe auch filePath(), absolutePath(), canonicalPath(), dir(), fileName(), und isRelative().
bool QFileInfo::permission(QFileDevice::Permissions permissions) const
Prüft auf Dateiberechtigungen. Das Argument permissions kann aus mehreren Flags des Typs QFile::Permissions bestehen, die miteinander verodert werden, um nach Berechtigungskombinationen zu suchen.
Auf Systemen, auf denen Dateien keine Berechtigungen haben, gibt diese Funktion immer true
zurück.
Hinweis: Das Ergebnis kann unter Windows ungenau sein, wenn die Prüfung NTFS permissions nicht aktiviert wurde.
Beispiel:
QFileInfo fi("/tmp/archive.tar.gz");if (fi.permission(QFile::WriteUser | QFile::ReadGroup)) qWarning("I can change the file; my group can read the file"); if (fi.permission(QFile::WriteGroup | QFile::WriteOther)) qWarning("The group or others can change the file");
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Siehe auch isReadable(), isWritable(), und isExecutable().
QFileDevice::Permissions QFileInfo::permissions() const
Gibt die vollständige ODER-verknüpfte Kombination von QFile::Permissions für die Datei zurück.
Hinweis: Das Ergebnis kann unter Windows ungenau sein, wenn die NTFS permissions Prüfung nicht aktiviert wurde.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
[since 6.6]
QString QFileInfo::readSymLink() const
Liest den Pfad, auf den der symbolische Link verweist.
Gibt den reinen Pfad zurück, auf den der symbolische Link verweist, ohne einen relativen Pfad zu dem Verzeichnis aufzulösen, das den symbolischen Link enthält. Die zurückgegebene Zeichenkette ist nur dann ein absoluter Pfad, wenn der symbolische Link ihn tatsächlich als solchen referenziert. Gibt einen leeren String zurück, wenn das Objekt kein symbolischer Link ist.
Diese Funktion wurde in Qt 6.6 eingeführt.
Siehe auch symLinkTarget(), exists(), isSymLink(), isDir(), und isFile().
void QFileInfo::refresh()
Aktualisiert die Informationen über den Dateisystemeintrag, auf den sich diese QFileInfo bezieht, d. h. liest Informationen aus dem Dateisystem ein, wenn eine zwischengespeicherte Eigenschaft das nächste Mal abgerufen wird.
void QFileInfo::setCaching(bool enable)
Wenn enable true ist, wird die Zwischenspeicherung von Dateiinformationen aktiviert. Wenn enable false ist, ist die Zwischenspeicherung deaktiviert.
Wenn die Zwischenspeicherung aktiviert ist, liest QFileInfo die Dateiinformationen aus dem Dateisystem, wenn sie das erste Mal benötigt werden, aber im Allgemeinen nicht später.
Die Zwischenspeicherung ist standardmäßig aktiviert.
Siehe auch refresh() und caching().
void QFileInfo::setFile(const QString &path)
Setzt den Pfad des Dateisystemeintrags, über den dieses QFileInfo Informationen liefert, auf path, der absolut oder relativ sein kann.
Unter Unix beginnen absolute Pfade mit dem Verzeichnis-Trennzeichen '/'
. Unter Windows beginnen absolute Pfade mit einer Laufwerksangabe (z. B. D:/
).
Relative Pfade beginnen mit einem Verzeichnisnamen oder einem regulären Dateinamen und geben den Pfad eines Dateisystemeintrags relativ zum aktuellen Arbeitsverzeichnis an.
Beispiel:
QFileInfo info("/usr/bin/env"); QString path = info.absolutePath(); // path = /usr/bin QString base = info.baseName(); // base = env info.setFile("/etc/hosts"); path = info.absolutePath(); // path = /etc base = info.baseName(); // base = hosts
Siehe auch isFile(), isRelative(), QDir::setCurrent(), und QDir::isRelativePath().
[since 6.0]
void QFileInfo::setFile(const std::filesystem::path &path)
Setzt den Pfad des Dateisystemeintrags, über den dieses QFileInfo Informationen liefert, auf path.
Wenn path relativ ist, wird QFileInfo auch einen relativen Pfad haben.
Diese Funktion wurde in Qt 6.0 eingeführt.
void QFileInfo::setFile(const QFileDevice &file)
Dies ist eine überladene Funktion.
Setzt die Datei, über die QFileInfo Informationen liefert, auf file.
Wenn file einen relativen Pfad enthält, wird QFileInfo ebenfalls einen relativen Pfad haben.
Siehe auch isRelative().
void QFileInfo::setFile(const QDir &dir, const QString &path)
Dies ist eine überladene Funktion.
Setzt den Pfad des Dateisystemeintrags, über den diese QFileInfo Informationen liefert, auf path im Verzeichnis dir.
Wenn dir einen relativen Pfad hat, wird QFileInfo ebenfalls einen relativen Pfad haben.
Wenn path absolut ist, wird das durch dir angegebene Verzeichnis nicht berücksichtigt.
Siehe auch isRelative().
qint64 QFileInfo::size() const
Gibt die Dateigröße in Bytes zurück. Wenn die Datei nicht existiert oder nicht abgerufen werden kann, wird 0 zurückgegeben.
Wenn die Datei ein Symlink ist, gibt diese Funktion Informationen über das Ziel zurück, nicht über den Symlink.
Siehe auch exists().
[since 6.0]
void QFileInfo::stat()
Liest alle Attribute aus dem Dateisystem.
Dies ist nützlich, wenn Informationen über das Dateisystem in einem Worker-Thread gesammelt werden und dann an die Benutzeroberfläche in Form von QFileInfo Instanzen weitergegeben werden.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch setCaching() und refresh().
QString QFileInfo::suffix() const
Gibt das Suffix (Erweiterung) der Datei zurück.
Das Suffix besteht aus allen Zeichen in der Datei nach (aber ohne) dem letzten '.'.
Beispiel:
Das Suffix einer Datei wird auf allen Plattformen gleich berechnet, unabhängig von den Dateinamenskonventionen (z.B. hat ".bashrc" unter Unix einen leeren Basisnamen, und das Suffix ist "bashrc").
Siehe auch fileName(), completeSuffix(), baseName(), und completeBaseName().
[noexcept]
void QFileInfo::swap(QFileInfo &other)
Tauscht diese Dateiinformation mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.
QString QFileInfo::symLinkTarget() const
Gibt den absoluten Pfad zu der Datei oder dem Verzeichnis zurück, auf das ein symbolischer Link zeigt, oder eine leere Zeichenkette, wenn das Objekt kein symbolischer Link ist.
Dieser Name darf keine existierende Datei darstellen; er ist nur eine Zeichenkette.
Hinweis: exists() gibt true
zurück, wenn der symbolische Link auf ein bestehendes Ziel verweist, andernfalls gibt es false
zurück.
Siehe auch exists(), isSymLink(), isDir(), und isFile().
[noexcept]
QFileInfo &QFileInfo::operator=(QFileInfo &&other)
Verschieben - weist other dieser QFileInfo Instanz zu.
QFileInfo &QFileInfo::operator=(const QFileInfo &fileinfo)
Erstellt eine Kopie der angegebenen fileinfo und weist sie dieser QFileInfo zu.
Verwandte Nicht-Mitglieder
QFileInfoList
[noexcept]
bool operator!=(const QFileInfo &lhs, const QFileInfo &rhs)
Gibt true
zurück, wenn QFileInfo lhs auf einen anderen Dateisystemeintrag verweist als den, auf den rhs verweist; andernfalls wird false
zurückgegeben.
Siehe auch operator==().
[noexcept]
bool operator==(const QFileInfo &lhs, const QFileInfo &rhs)
Gibt true
zurück, wenn QFileInfo lhs und QFileInfo rhs auf denselben Eintrag im Dateisystem verweisen; andernfalls wird false
zurückgegeben.
Beachten Sie, dass das Ergebnis des Vergleichs zweier leerer QFileInfo Objekte, die keine Verweise auf Dateisystemeinträge enthalten (Pfade, die nicht existieren oder leer sind), undefiniert ist.
Warnung: Dies vergleicht nicht zwei verschiedene symbolische Links, die auf dasselbe Ziel zeigen.
Warnung: Unter Windows werden lange und kurze Pfade, die auf denselben Dateisystemeintrag verweisen, so behandelt, als ob sie auf unterschiedliche Einträge verweisen.
Siehe auch operator!=().
Makro-Dokumentation
[since 6.0]
QT_IMPLICIT_QFILEINFO_CONSTRUCTION
Durch die Definition dieses Makros werden die meisten QFileInfo -Konstruktoren implizit statt explizit. Da die Erstellung von QFileInfo Objekten teuer ist, sollte man es vermeiden, sie versehentlich zu erstellen, insbesondere wenn billigere Alternativen existieren. Zum Beispiel:
QDirIterator it(dir); while (it.hasNext()) { // Implicit conversion from QString (returned by it.next()): // may create unnecessary data structures and cause additional // accesses to the file system. Unless this macro is defined, // this line does not compile. QFileInfo fi = it.next(); ~~~ }
Verwenden Sie stattdessen die richtige API:
QDirIterator it(dir); while (it.hasNext()) { // Extract the QFileInfo from the iterator directly: QFileInfo fi = it.nextFileInfo(); ~~~ }
Die Konstruktion von QString, QFile, und so weiter ist immer möglich, indem man die direkte Initialisierung statt der Kopierinitialisierung verwendet:
QFileInfo fi1 = some_string; // Does not compile unless this macro is defined QFileInfo fi2(some_string); // OK QFileInfo fi3{some_string}; // Possibly better, avoids the risk of the Most Vexing Parse auto fi4 = QFileInfo(some_string); // OK
Dieses Makro wird aus Kompatibilitätsgründen bereitgestellt. Seine Verwendung in neuem Code wird nicht empfohlen.
Dieses Makro wurde in Qt 6.0 eingeführt.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.