QDir Class
Die Klasse QDir ermöglicht den Zugriff auf Verzeichnisstrukturen und deren Inhalte. Mehr...
Kopfzeile: | #include <QDir> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QDir 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 Typen
enum | Filter { Dirs, AllDirs, Files, Drives, NoSymLinks, …, CaseSensitive } |
flags | Filters |
enum | SortFlag { Name, Time, Size, Type, Unsorted, …, LocaleAware } |
flags | SortFlags |
Öffentliche Funktionen
QDir(const QString &path = QString()) | |
(since 6.0) | QDir(const std::filesystem::path &path) |
QDir(const QString &path, const QString &nameFilter, QDir::SortFlags sort = SortFlags(Name | IgnoreCase), QDir::Filters filters = AllEntries) | |
(since 6.0) | QDir(const std::filesystem::path &path, const QString &nameFilter, QDir::SortFlags sort = SortFlags(Name | IgnoreCase), QDir::Filters filters = AllEntries) |
QDir(const QDir &dir) | |
~QDir() | |
QString | absoluteFilePath(const QString &fileName) const |
QString | absolutePath() const |
QString | canonicalPath() const |
bool | cd(const QString &dirName) |
bool | cdUp() |
qsizetype | count() const |
QString | dirName() const |
QFileInfoList | entryInfoList(const QStringList &nameFilters, QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const |
QFileInfoList | entryInfoList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const |
QStringList | entryList(const QStringList &nameFilters, QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const |
QStringList | entryList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const |
bool | exists(const QString &name) const |
bool | exists() const |
QString | filePath(const QString &fileName) const |
(since 6.0) std::filesystem::path | filesystemAbsolutePath() const |
(since 6.0) std::filesystem::path | filesystemCanonicalPath() const |
(since 6.0) std::filesystem::path | filesystemPath() const |
QDir::Filters | filter() const |
bool | isAbsolute() const |
bool | isEmpty(QDir::Filters filters = Filters(AllEntries | NoDotAndDotDot)) const |
bool | isReadable() const |
bool | isRelative() const |
bool | isRoot() const |
bool | makeAbsolute() |
(since 6.3) bool | mkdir(const QString &dirName, QFileDevice::Permissions permissions) const |
bool | mkdir(const QString &dirName) const |
bool | mkpath(const QString &dirPath) const |
QStringList | nameFilters() const |
QString | path() const |
void | refresh() const |
QString | relativeFilePath(const QString &fileName) const |
bool | remove(const QString &fileName) |
bool | removeRecursively() |
bool | rename(const QString &oldName, const QString &newName) |
bool | rmdir(const QString &dirName) const |
bool | rmpath(const QString &dirPath) const |
void | setFilter(QDir::Filters filters) |
void | setNameFilters(const QStringList &nameFilters) |
void | setPath(const QString &path) |
(since 6.0) void | setPath(const std::filesystem::path &path) |
void | setSorting(QDir::SortFlags sort) |
QDir::SortFlags | sorting() const |
void | swap(QDir &other) |
QDir & | operator=(QDir &&other) |
QDir & | operator=(const QDir &dir) |
QString | operator[](qsizetype pos) const |
Statische öffentliche Mitglieder
void | addSearchPath(const QString &prefix, const QString &path) |
(since 6.0) void | addSearchPath(const QString &prefix, const std::filesystem::path &path) |
QString | cleanPath(const QString &path) |
QDir | current() |
QString | currentPath() |
QFileInfoList | drives() |
QString | fromNativeSeparators(const QString &pathName) |
QDir | home() |
QString | homePath() |
bool | isAbsolutePath(const QString &path) |
bool | isRelativePath(const QString &path) |
QChar | listSeparator() |
bool | match(const QString &filter, const QString &fileName) |
bool | match(const QStringList &filters, const QString &fileName) |
QDir | root() |
QString | rootPath() |
QStringList | searchPaths(const QString &prefix) |
QChar | separator() |
bool | setCurrent(const QString &path) |
void | setSearchPaths(const QString &prefix, const QStringList &searchPaths) |
QDir | temp() |
QString | tempPath() |
QString | toNativeSeparators(const QString &pathName) |
Verwandte Nicht-Mitglieder
bool | operator!=(const QDir &lhs, const QDir &rhs) |
bool | operator==(const QDir &lhs, const QDir &rhs) |
Detaillierte Beschreibung
Ein QDir wird verwendet, um Pfadnamen zu manipulieren, auf Informationen über Pfade und Dateien zuzugreifen und das zugrunde liegende Dateisystem zu manipulieren. Es kann auch verwendet werden, um auf das Ressourcensystem von Qt zuzugreifen.
Qt verwendet "/" als universelles Verzeichnis-Trennzeichen, so wie "/" als Pfad-Trennzeichen in URLs verwendet wird. Wenn Sie immer "/" als Verzeichnistrennzeichen verwenden, wird Qt Ihre Pfade so übersetzen, dass sie dem zugrunde liegenden Betriebssystem entsprechen.
Ein QDir kann entweder mit einem relativen oder einem absoluten Pfad auf eine Datei verweisen. Absolute Pfade beginnen mit dem Verzeichnistrennzeichen (unter Windows optional mit vorangestellter Laufwerksangabe). Relative Dateinamen beginnen mit einem Verzeichnisnamen oder einem Dateinamen und geben einen Pfad relativ zum aktuellen Verzeichnis an.
Beispiele für absolute Pfade:
Unter Windows wird das zweite obige Beispiel in C:\Users
übersetzt, wenn es für den Zugriff auf Dateien verwendet wird.
Beispiele für relative Pfade:
QDir("images/landscape.png")
Sie können die Funktionen isRelative() oder isAbsolute() verwenden, um zu prüfen, ob ein QDir einen relativen oder einen absoluten Dateipfad verwendet. Rufen Sie makeAbsolute() auf, um ein relatives QDir in ein absolutes zu konvertieren.
Hinweis: Pfade, die mit einem Doppelpunkt (:) beginnen, werden immer als absolut betrachtet, da sie ein QResource bezeichnen.
Navigation und Verzeichnisoperationen
Der Pfad eines Verzeichnisses kann mit der Funktion path() ermittelt werden, und ein neuer Pfad kann mit der Funktion setPath() festgelegt werden. Der absolute Pfad zu einem Verzeichnis wird durch den Aufruf von absolutePath() ermittelt.
Der Name eines Verzeichnisses wird mit der Funktion dirName() ermittelt. Diese gibt normalerweise das letzte Element im absoluten Pfad zurück, das den Ort des Verzeichnisses angibt. Sie kann jedoch auch "." zurückgeben, wenn QDir das aktuelle Verzeichnis darstellt.
Der Pfad für ein Verzeichnis kann auch mit den Funktionen cd() und cdUp() geändert werden, die beide wie bekannte Shell-Befehle funktionieren. Wenn cd() mit dem Namen eines bestehenden Verzeichnisses aufgerufen wird, ändert das QDir-Objekt das Verzeichnis so, dass es stattdessen dieses Verzeichnis repräsentiert. Die Funktion cdUp() ändert das Verzeichnis des QDir-Objekts so, dass es auf sein übergeordnetes Verzeichnis verweist; d.h. cd("..") ist äquivalent zu cdUp().
Verzeichnisse können mit mkdir() erstellt, mit rename() umbenannt und mit rmdir() entfernt werden.
Das Vorhandensein eines Verzeichnisses mit einem bestimmten Namen kann mit exists() geprüft werden, und die Eigenschaften eines Verzeichnisses können mit isReadable(), isAbsolute(), isRelative() und isRoot() geprüft werden.
Die Funktion refresh() liest die Daten des Verzeichnisses erneut von der Festplatte ein.
Dateien und Verzeichnisinhalte
Verzeichnisse enthalten eine Reihe von Einträgen, die Dateien, Verzeichnisse und symbolische Links darstellen. Die Anzahl der Einträge in einem Verzeichnis wird von count() zurückgegeben. Eine String-Liste mit den Namen aller Einträge in einem Verzeichnis erhalten Sie mit entryList(). Wenn Sie Informationen über jeden Eintrag benötigen, verwenden Sie entryInfoList(), um eine Liste von QFileInfo Objekten zu erhalten.
Pfade zu Dateien und Verzeichnissen innerhalb eines Verzeichnisses können mit filePath() und absoluteFilePath() erstellt werden. Die Funktion filePath() gibt einen Pfad zu der angegebenen Datei oder dem Verzeichnis relativ zum Pfad des QDir-Objekts zurück; absoluteFilePath() gibt einen absoluten Pfad zu der angegebenen Datei oder dem Verzeichnis zurück. Keine dieser Funktionen prüft das Vorhandensein von Dateien oder Verzeichnissen; sie konstruieren nur Pfade.
QDir directory("Documents/Letters"); QString path = directory.filePath("contents.txt"); QString absolutePath = directory.absoluteFilePath("contents.txt");
Dateien können mit der Funktion remove() entfernt werden. Verzeichnisse können nicht auf dieselbe Weise wie Dateien entfernt werden; verwenden Sie stattdessen rmdir(), um sie zu entfernen.
Es ist möglich, die Anzahl der von entryList() und entryInfoList() zurückgegebenen Einträge durch Anwendung von Filtern auf ein QDir-Objekt zu reduzieren. Sie können einen Namensfilter anwenden, um ein Muster mit Platzhaltern anzugeben, dem Dateinamen entsprechen müssen, einen Attributfilter, der Eigenschaften von Einträgen auswählt und zwischen Dateien und Verzeichnissen unterscheiden kann, sowie eine Sortierreihenfolge.
Namensfilter sind Listen von Zeichenketten, die an setNameFilters() übergeben werden. Attributfilter bestehen aus einer bitweisen ODER-Kombination von Filtern, die beim Aufruf von setFilter() angegeben werden. Die Sortierreihenfolge wird mit setSorting() mit einer bitweisen ODER-Kombination von SortFlags festgelegt.
Mit der Funktion match() können Sie prüfen, ob ein Dateiname einem Filter entspricht.
Filter- und Sortierreihenfolge-Flags können auch beim Aufruf von entryList() und entryInfoList() angegeben werden, um zuvor definiertes Verhalten außer Kraft zu setzen.
Das aktuelle Verzeichnis und andere spezielle Pfade
Der Zugriff auf einige gebräuchliche Verzeichnisse wird durch eine Reihe statischer Funktionen ermöglicht, die QDir-Objekte zurückgeben. Für diese gibt es auch entsprechende Funktionen, die Strings zurückgeben:
QDir | QString | Rückgabewert |
---|---|---|
current() | currentPath() | Das Arbeitsverzeichnis der Anwendung |
home() | homePath() | Das Heimatverzeichnis des Benutzers |
root() | rootPath() | Das Stammverzeichnis |
temp() | tempPath() | Das temporäre Verzeichnis des Systems |
Die statische Funktion setCurrent() kann auch verwendet werden, um das Arbeitsverzeichnis der Anwendung festzulegen.
Wenn Sie das Verzeichnis finden wollen, das die ausführbare Datei der Anwendung enthält, siehe QCoreApplication::applicationDirPath().
Die statische Funktion drives() liefert eine Liste der Stammverzeichnisse für jedes Gerät, das ein Dateisystem enthält. Auf Unix-Systemen wird eine Liste zurückgegeben, die ein einziges Wurzelverzeichnis "/" enthält; unter Windows enthält die Liste normalerweise C:/
und möglicherweise andere Laufwerksbuchstaben wie D:/
, je nach Konfiguration des Benutzersystems.
Pfadmanipulation und Zeichenketten
Pfade, die "."-Elemente enthalten, die auf das aktuelle Verzeichnis an diesem Punkt des Pfades verweisen, ".."-Elemente, die auf das übergeordnete Verzeichnis verweisen, und symbolische Links können mit der Funktion canonicalPath() in eine kanonische Form gebracht werden.
Pfade können auch mit der Funktion cleanPath() vereinfacht werden, um überflüssige "/"- und ".."-Elemente zu entfernen.
Manchmal ist es notwendig, einen Pfad in der nativen Darstellung für die Plattform des Benutzers anzeigen zu können. Die statische Funktion toNativeSeparators() gibt eine Kopie des angegebenen Pfades zurück, in der jedes Verzeichnistrennzeichen durch das entsprechende Trennzeichen für das zugrunde liegende Betriebssystem ersetzt ist.
Beispiele
Prüfen, ob ein Verzeichnis existiert:
(Wir könnten auch eine der statischen Komfortfunktionen QFileInfo::exists() oder QFile::exists() verwenden).
Durchlaufen von Verzeichnissen und Lesen einer Datei:
QDir dir = QDir::root(); // "/"if (!dir.cd("tmp")) { // "/tmp" qWarning("Cannot find the \"/tmp\" directory"); } else { QFile file(dir.filePath("ex1.txt")); // "/tmp/ex1.txt" if (!file.open(QIODevice::ReadWrite)) qWarning("Cannot create the file %s", file.name()); }
Ein Programm, das alle Dateien im aktuellen Verzeichnis (ohne symbolische Links) auflistet, sortiert nach Größe, die kleinste zuerst:
#include <QDir> #include <iostream> int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); QDir dir; dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks); dir.setSorting(QDir::Size | QDir::Reversed); QFileInfoList list = dir.entryInfoList(); std::cout << " Bytes Filename" << std::endl; for (int i = 0; i < list.size(); ++i) { QFileInfo fileInfo = list.at(i); std::cout << qPrintable(QString("%1 %2").arg(fileInfo.size(), 10) .arg(fileInfo.fileName())); std::cout << std::endl; } return 0; }
Plattformspezifische Probleme
Unter Android gelten einige Einschränkungen beim Umgang mit Inhalts-URIs:
- Zugriffsberechtigungen können erforderlich sein, wenn der Benutzer über die QFileDialog aufgefordert wird, die den nativen Dateipicker von Android implementiert.
- 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 letztgenannten APIs vollständig in die MediaStore-APIs von Android zu integrieren.
Siehe auch QFileInfo, QFile, QFileDialog, QCoreApplication::applicationDirPath(), und Fetch More Example.
Dokumentation der Mitgliedstypen
enum QDir::Filter
flags QDir::Filters
Diese Aufzählung beschreibt die Filteroptionen, die für QDir zur Verfügung stehen, z.B. für entryList() und entryInfoList(). Der Filterwert wird durch die Kombination von Werten aus der folgenden Liste unter Verwendung des bitweisen OR-Operators angegeben:
Konstante | Wert | Beschreibung |
---|---|---|
QDir::Dirs | 0x001 | Listet Verzeichnisse auf, die mit den Filtern übereinstimmen. |
QDir::AllDirs | 0x400 | Alle Verzeichnisse auflisten, d.h. die Filter nicht auf Verzeichnisnamen anwenden. |
QDir::Files | 0x002 | Dateien auflisten. |
QDir::Drives | 0x004 | Laufwerke auflisten (wird unter Unix ignoriert). |
QDir::NoSymLinks | 0x008 | Keine symbolischen Links auflisten (wird von Betriebssystemen ignoriert, die keine symbolischen Links unterstützen). |
QDir::NoDotAndDotDot | NoDot | NoDotDot | Die speziellen Einträge "." und ".." nicht auflisten. |
QDir::NoDot | 0x2000 | Den speziellen Eintrag "." nicht auflisten. |
QDir::NoDotDot | 0x4000 | Den speziellen Eintrag ".." nicht auflisten. |
QDir::AllEntries | Dirs | Files | Drives | Verzeichnisse, Dateien, Laufwerke und Symlinks auflisten (defekte Symlinks werden nicht aufgelistet, außer Sie geben System an). |
QDir::Readable | 0x010 | Listen Sie Dateien auf, für die die Anwendung Lesezugriff hat. Der Wert Readable muss mit Dirs oder Files kombiniert werden. |
QDir::Writable | 0x020 | Dateien auflisten, für die die Anwendung Schreibzugriff hat. Der Wert Writable muss mit Dirs oder Files kombiniert werden. |
QDir::Executable | 0x040 | Dateien auflisten, auf die die Anwendung Ausführungszugriff hat. Der Wert Executable muss mit Dirs oder Files kombiniert werden. |
QDir::Modified | 0x080 | Nur Dateien auflisten, die geändert wurden (wird unter Unix ignoriert). |
QDir::Hidden | 0x100 | Versteckte Dateien auflisten (unter Unix, Dateien, die mit einem "." beginnen). |
QDir::System | 0x200 | Systemdateien auflisten (unter Unix sind FIFOs, Sockets und Gerätedateien enthalten; unter Windows sind .lnk Dateien enthalten) |
QDir::CaseSensitive | 0x800 | Der Filter sollte zwischen Groß- und Kleinschreibung unterscheiden. |
Funktionen, die Filter-Enum-Werte verwenden, um Listen von Dateien und Verzeichnissen zu filtern, schließen symbolische Links zu Dateien und Verzeichnissen ein, sofern Sie nicht den Wert NoSymLinks setzen.
Eine standardmäßig konstruierte QDir filtert keine Dateien auf der Grundlage ihrer Berechtigungen heraus, so dass entryList() und entryInfoList() alle Dateien zurückgeben, die lesbar, schreibbar, ausführbar oder eine beliebige Kombination der drei sind. Dies macht die Vorgabe einfach zu schreiben und gleichzeitig nützlich.
Wenn Sie beispielsweise die Flags Readable
, Writable
und Files
setzen, werden alle Dateien aufgelistet, für die die Anwendung Lese- oder Schreibzugriff oder beides hat. Wenn die Flags Dirs
und Drives
ebenfalls in dieser Kombination enthalten sind, können alle Laufwerke, Verzeichnisse, alle Dateien, die die Anwendung lesen, schreiben oder ausführen kann, sowie Symlinks zu solchen Dateien/Verzeichnissen aufgelistet werden.
Um die Berechtigungen für ein Verzeichnis abzurufen, verwenden Sie die Funktion entryInfoList(), um die zugehörigen QFileInfo -Objekte zu erhalten, und verwenden Sie dann QFileInfo::permissions(), um die Berechtigungen und den Besitz für jede Datei zu erhalten.
Der Typ Filters ist ein Typedef für QFlags<Filter>. Er speichert eine ODER-Kombination von Filterwerten.
enum QDir::SortFlag
flags QDir::SortFlags
Diese Aufzählung beschreibt die für QDir verfügbaren Sortieroptionen, z.B. für entryList() und entryInfoList(). Der Sortierwert wird durch ODER-Verknüpfung von Werten aus der folgenden Liste angegeben:
Konstante | Wert | Beschreibung |
---|---|---|
QDir::Name | 0x00 | Nach Name sortieren. |
QDir::Time | 0x01 | Sortieren nach Zeit (Änderungszeit). |
QDir::Size | 0x02 | Sortieren nach Dateigröße. |
QDir::Type | 0x80 | Nach Dateityp (Erweiterung) sortieren. |
QDir::Unsorted | 0x03 | Nicht sortieren. |
QDir::NoSort | -1 | Standardmäßig nicht sortiert. |
QDir::DirsFirst | 0x04 | Zuerst die Verzeichnisse, dann die Dateien. |
QDir::DirsLast | 0x20 | Zuerst die Dateien, dann die Verzeichnisse. |
QDir::Reversed | 0x08 | Die Sortierreihenfolge umkehren. |
QDir::IgnoreCase | 0x10 | Groß- und Kleinschreibung nicht beachten. |
QDir::LocaleAware | 0x40 | Sortiert die Elemente entsprechend den aktuellen Gebietsschemaeinstellungen. |
Sie können nur eine der ersten vier Möglichkeiten angeben.
Wenn Sie sowohl DirsFirst als auch Reversed angeben, werden die Verzeichnisse trotzdem zuerst sortiert, aber in umgekehrter Reihenfolge; die Dateien werden nach den Verzeichnissen aufgelistet, ebenfalls in umgekehrter Reihenfolge.
Der Typ SortFlags ist ein Typedef für QFlags<SortFlag>. Er speichert eine OR-Kombination von SortFlag-Werten.
Dokumentation der Mitgliedsfunktionen
QDir::QDir(const QString &path = QString())
Konstruiert ein QDir, das auf das angegebene Verzeichnis path zeigt. Wenn path leer ist, wird das Arbeitsverzeichnis des Programms (".") verwendet.
Siehe auch currentPath().
[since 6.0]
QDir::QDir(const std::filesystem::path &path)
Konstruiert ein QDir, das auf das angegebene Verzeichnis path zeigt. Wenn path leer ist, wird das Arbeitsverzeichnis des Programms (".") verwendet.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch currentPath().
QDir::QDir(const QString &path, const QString &nameFilter, QDir::SortFlags sort = SortFlags(Name | IgnoreCase), QDir::Filters filters = AllEntries)
Konstruiert ein QDir mit dem Pfad path, das seine Einträge nach Namen mit nameFilter und nach Attributen mit filters filtert. Es sortiert auch die Namen mit sort.
Der Standardwert nameFilter ist ein leerer String, der nichts ausschließt; der Standardwert filters ist AllEntries, der ebenfalls nichts ausschließt. Die Vorgabe sort ist Name | IgnoreCase, d.h. Sortierung nach Namen ohne Berücksichtigung der Groß-/Kleinschreibung.
Wenn path eine leere Zeichenkette ist, verwendet QDir "." (das aktuelle Verzeichnis). Wenn nameFilter eine leere Zeichenkette ist, verwendet QDir den Namensfilter "*" (alle Dateien).
Hinweis: path muss nicht existieren.
Siehe auch exists(), setPath(), setNameFilters(), setFilter(), und setSorting().
[since 6.0]
QDir::QDir(const std::filesystem::path &path, const QString &nameFilter, QDir::SortFlags sort = SortFlags(Name | IgnoreCase), QDir::Filters filters = AllEntries)
Konstruiert ein QDir mit dem Pfad path, das seine Einträge nach Namen mit nameFilter und nach Attributen mit filters filtert. Außerdem sortiert es die Namen mit sort.
Der Standardwert nameFilter ist ein leerer String, der nichts ausschließt; der Standardwert filters ist AllEntries, der ebenfalls nichts ausschließt. Die Vorgabe sort ist Name | IgnoreCase, d.h. die Sortierung nach Namen erfolgt case-insensitiv.
Wenn path leer ist, verwendet QDir "." (das aktuelle Verzeichnis). Wenn nameFilter ein leerer String ist, verwendet QDir den Namensfilter "*" (alle Dateien).
Hinweis: path muss nicht existieren.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch exists(), setPath(), setNameFilters(), setFilter(), und setSorting().
QDir::QDir(const QDir &dir)
Konstruiert ein QDir-Objekt, das eine Kopie des QDir-Objekts für das Verzeichnis dir ist.
Siehe auch operator=().
[noexcept]
QDir::~QDir()
Zerstört das Objekt QDir und gibt seine Ressourcen frei. Dies hat keine Auswirkungen auf das zugrunde liegende Verzeichnis im Dateisystem.
QString QDir::absoluteFilePath(const QString &fileName) const
Gibt den absoluten Pfadnamen einer Datei im Verzeichnis zurück. Es wird nicht geprüft, ob die Datei tatsächlich im Verzeichnis existiert; siehe aber exists(). Redundante Mehrfachtrennzeichen oder "." und ".." Verzeichnisse in fileName werden nicht entfernt (siehe cleanPath()).
Siehe auch relativeFilePath(), filePath(), und canonicalPath().
QString QDir::absolutePath() const
Gibt den absoluten Pfad zurück (ein Pfad, der mit "/" oder mit einer Laufwerksangabe beginnt), der symbolische Links enthalten kann, aber niemals redundante ".", ".." oder mehrere Trennzeichen enthält.
Siehe auch setPath(), canonicalPath(), exists(), cleanPath(), dirName(), und absoluteFilePath().
[static]
void QDir::addSearchPath(const QString &prefix, const QString &path)
Fügt path zum Suchpfad für prefix hinzu.
Siehe auch setSearchPaths().
[static, since 6.0]
void QDir::addSearchPath(const QString &prefix, const std::filesystem::path &path)
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.0 eingeführt.
QString QDir::canonicalPath() const
Gibt den kanonischen Pfad zurück, d.h. einen Pfad ohne symbolische Links oder überflüssige "."- oder ".."-Elemente.
Auf Systemen ohne symbolische Links gibt diese Funktion immer dieselbe Zeichenkette zurück, die absolutePath() zurückgibt. Existiert der kanonische Pfad nicht (normalerweise aufgrund hängender symbolischer Links), gibt canonicalPath() eine leere Zeichenkette zurück.
Beispiel:
QString bin = "/local/bin"; // where /local/bin is a symlink to /usr/bin QDir binDir(bin); QString canonicalBin = binDir.canonicalPath(); // canonicalBin now equals "/usr/bin" QString ls = "/local/bin/ls"; // where ls is the executable "ls" QDir lsDir(ls); QString canonicalLs = lsDir.canonicalPath(); // canonicalLS now equals "/usr/bin/ls".
Siehe auch path(), absolutePath(), exists(), cleanPath(), dirName(), und absoluteFilePath().
bool QDir::cd(const QString &dirName)
Ändert das Verzeichnis von QDir in dirName.
Gibt true
zurück, wenn das neue Verzeichnis existiert; andernfalls wird false
zurückgegeben. Beachten Sie, dass die logische cd()-Operation nicht ausgeführt wird, wenn das neue Verzeichnis nicht existiert.
Der Aufruf von cd("..") ist äquivalent zum Aufruf von cdUp().
Siehe auch cdUp(), isReadable(), exists(), und path().
bool QDir::cdUp()
Wechselt das Verzeichnis, indem es vom aktuellen Verzeichnis QDir aus ein Verzeichnis nach oben geht.
Gibt true
zurück, wenn das neue Verzeichnis existiert; andernfalls wird false
zurückgegeben. Beachten Sie, dass die logische cdUp()-Operation nicht ausgeführt wird, wenn das neue Verzeichnis nicht existiert.
Hinweis: Unter Android wird dies für Inhalts-URIs nicht unterstützt. Für weitere Informationen, siehe DocumentFile.getParentFile().
Siehe auch cd(), isReadable(), exists(), und path().
[static]
QString QDir::cleanPath(const QString &path)
Gibt path zurück, wobei Verzeichnistrennzeichen normalisiert (d. h. plattformspezifische Trennzeichen in "/" umgewandelt) und überflüssige Trennzeichen entfernt sowie ". "s und ".. "s aufgelöst werden (soweit möglich).
Symbolische Links werden beibehalten. Diese Funktion gibt nicht den kanonischen Pfad zurück, sondern die einfachste Version der Eingabe. Zum Beispiel wird "./local" zu "local", "local/../bin" zu "bin" und "/local/usr/../bin" zu "/local/bin".
Siehe auch absolutePath() und canonicalPath().
qsizetype QDir::count() const
Gibt die Gesamtzahl der Verzeichnisse und Dateien im Verzeichnis zurück.
Äquivalent zu entryList().count().
Hinweis: In Qt-Versionen vor 6.5 gab diese Funktion uint
zurück, nicht qsizetype
.
Siehe auch operator[]() und entryList().
[static]
QDir QDir::current()
Gibt das aktuelle Verzeichnis der Anwendung zurück.
Das Verzeichnis wird unter Verwendung des absoluten Pfads des aktuellen Verzeichnisses erstellt, wodurch sichergestellt wird, dass path() mit absolutePath() übereinstimmt.
Siehe auch currentPath(), setCurrent(), home(), root(), und temp().
[static]
QString QDir::currentPath()
Gibt den absoluten Pfad des aktuellen Verzeichnisses der Anwendung zurück. Das aktuelle Verzeichnis ist das zuletzt mit QDir::setCurrent() festgelegte Verzeichnis oder, falls dieses nie aufgerufen wurde, das Verzeichnis, in dem diese Anwendung vom übergeordneten Prozess gestartet wurde.
Siehe auch current(), setCurrent(), homePath(), rootPath(), tempPath(), und QCoreApplication::applicationDirPath().
QString QDir::dirName() const
Gibt den Namen des Verzeichnisses zurück; dieser ist nicht identisch mit dem Pfad, z. B. könnte ein Verzeichnis mit dem Namen "mail" den Pfad "/var/spool/mail" haben. Wenn das Verzeichnis keinen Namen hat (z. B. weil es das Stammverzeichnis ist), wird ein leerer String zurückgegeben.
Es wird nicht geprüft, ob ein Verzeichnis mit diesem Namen tatsächlich existiert; siehe aber exists().
Siehe auch path(), filePath(), absolutePath(), und absoluteFilePath().
[static]
QFileInfoList QDir::drives()
Gibt eine Liste der Stammverzeichnisse auf diesem System zurück.
Unter Windows wird eine Liste von QFileInfo Objekten zurückgegeben, die "C:/", "D:/", usw. enthalten. Laufwerke mit auswerfbaren Medien, die leer sind, werden nicht zurückgegeben. Auf anderen Betriebssystemen wird eine Liste zurückgegeben, die nur ein Stammverzeichnis (d.h. "/") enthält.
Siehe auch root() und rootPath().
QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const
Gibt eine Liste von QFileInfo Objekten für alle Dateien und Verzeichnisse im Verzeichnis zurück, geordnet nach den Namens- und Attributfiltern, die zuvor mit setNameFilters() und setFilter() gesetzt wurden, und sortiert nach den mit setSorting() gesetzten Flags.
Der Namensfilter, der Dateiattributfilter und die Sortierungsspezifikation können mit den Argumenten nameFilters, filters und sort außer Kraft gesetzt werden.
Gibt eine leere Liste zurück, wenn das Verzeichnis nicht lesbar ist, nicht existiert oder wenn nichts mit der Spezifikation übereinstimmt.
Siehe auch entryList(), setNameFilters(), setSorting(), setFilter(), isReadable(), und exists().
QFileInfoList QDir::entryInfoList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const
Dies ist eine überladene Funktion.
Gibt eine Liste von QFileInfo Objekten für alle Dateien und Verzeichnisse im Verzeichnis zurück, geordnet nach den Namens- und Attributfiltern, die zuvor mit setNameFilters() und setFilter() gesetzt wurden, und sortiert nach den mit setSorting() gesetzten Flags.
Die Angaben zu den Attributfiltern und zur Sortierung können mit den Argumenten filters und sort außer Kraft gesetzt werden.
Gibt eine leere Liste zurück, wenn das Verzeichnis nicht lesbar ist, nicht existiert oder wenn nichts mit der Spezifikation übereinstimmt.
Siehe auch entryList(), setNameFilters(), setSorting(), setFilter(), isReadable(), und exists().
QStringList QDir::entryList(const QStringList &nameFilters, QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const
Gibt eine Liste der Namen aller Dateien und Verzeichnisse im Verzeichnis zurück, geordnet nach den Namens- und Attributfiltern, die zuvor mit setNameFilters() und setFilter() gesetzt wurden, und sortiert nach den mit setSorting() gesetzten Flags.
Der Namensfilter, der Dateiattributfilter und die Sortierungsspezifikation können mit den Argumenten nameFilters, filters und sort außer Kraft gesetzt werden.
Gibt eine leere Liste zurück, wenn das Verzeichnis nicht lesbar ist, nicht existiert oder wenn nichts mit der Spezifikation übereinstimmt.
Siehe auch entryInfoList(), setNameFilters(), setSorting(), und setFilter().
QStringList QDir::entryList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const
Dies ist eine überladene Funktion.
Gibt eine Liste der Namen aller Dateien und Verzeichnisse im Verzeichnis zurück, geordnet nach den Namens- und Attributfiltern, die zuvor mit setNameFilters() und setFilter() gesetzt wurden, und sortiert nach den mit setSorting() gesetzten Flags.
Die Angaben zu den Attributfiltern und zur Sortierung können mit den Argumenten filters und sort außer Kraft gesetzt werden.
Gibt eine leere Liste zurück, wenn das Verzeichnis nicht lesbar ist, nicht existiert oder wenn nichts mit der Spezifikation übereinstimmt.
Hinweis: Um Symlinks aufzulisten, die auf nicht existierende Dateien zeigen, muss System an den Filter übergeben werden.
Siehe auch entryInfoList(), setNameFilters(), setSorting(), und setFilter().
bool QDir::exists(const QString &name) const
Gibt true
zurück, wenn die Datei mit dem Namen name existiert; andernfalls wird false zurückgegeben.
Sofern name keinen absoluten Dateipfad enthält, wird angenommen, dass der Dateiname relativ zum Verzeichnis selbst ist, so dass diese Funktion typischerweise verwendet wird, um das Vorhandensein von Dateien innerhalb eines Verzeichnisses zu prüfen.
Siehe auch QFileInfo::exists() und QFile::exists().
bool QDir::exists() const
Dies ist eine überladene Funktion.
Gibt true
zurück, wenn das Verzeichnis existiert; andernfalls gibt sie false
zurück. (Wenn eine Datei mit demselben Namen gefunden wird, gibt diese Funktion false zurück).
Die Überladung dieser Funktion, die ein Argument akzeptiert, wird verwendet, um auf das Vorhandensein von Dateien und Verzeichnissen innerhalb eines Verzeichnisses zu prüfen.
Siehe auch QFileInfo::exists() und QFile::exists().
QString QDir::filePath(const QString &fileName) const
Gibt den Pfadnamen einer Datei im Verzeichnis zurück. Überprüft nicht, ob die Datei tatsächlich im Verzeichnis existiert; siehe aber exists(). Wenn QDir relativ ist, wird der zurückgegebene Pfadname ebenfalls relativ sein. Redundante Mehrfachtrennzeichen oder "." und ".." Verzeichnisse in fileName werden nicht entfernt (siehe cleanPath()).
Siehe auch dirName(), absoluteFilePath(), isRelative(), und canonicalPath().
[since 6.0]
std::filesystem::path QDir::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 QDir::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 QDir::filesystemPath() const
Gibt path() als std::filesystem::path
zurück.
Diese Funktion wurde in Qt 6.0 eingeführt.
Siehe auch path().
QDir::Filters QDir::filter() const
Gibt den durch setFilter() gesetzten Wert zurück.
Siehe auch setFilter().
[static]
QString QDir::fromNativeSeparators(const QString &pathName)
Gibt pathName unter Verwendung von '/' als Dateitrennzeichen zurück. Unter Windows zum Beispiel gibt fromNativeSeparators("c:\\winnt\\system32
") "c:/winnt/system32" zurück.
Auf einigen Betriebssystemen, z. B. Unix, kann die zurückgegebene Zeichenkette mit dem Argument identisch sein.
Siehe auch toNativeSeparators() und separator().
[static]
QDir QDir::home()
Gibt das Heimatverzeichnis des Benutzers zurück.
Das Verzeichnis wird unter Verwendung des absoluten Pfads des Heimatverzeichnisses erstellt, wodurch sichergestellt wird, dass path() mit absolutePath() identisch ist.
Siehe homePath() für Details.
Siehe auch drives(), current(), root(), und temp().
[static]
QString QDir::homePath()
Gibt den absoluten Pfad des Home-Verzeichnisses des Benutzers zurück.
Unter Windows gibt diese Funktion das Verzeichnis des Profils des aktuellen Benutzers zurück. Normalerweise ist dies:
C:/Users/Username
Verwenden Sie die Funktion toNativeSeparators(), um die Trennzeichen in diejenigen umzuwandeln, die für das zugrunde liegende Betriebssystem geeignet sind.
Wenn das Verzeichnis des Profils des aktuellen Benutzers nicht existiert oder nicht abgerufen werden kann, werden die folgenden Alternativen geprüft (in der angegebenen Reihenfolge), bis ein vorhandener und verfügbarer Pfad gefunden wird:
- Der durch die Umgebungsvariable
USERPROFILE
angegebene Pfad. - Der Pfad, der sich aus der Verkettung der Umgebungsvariablen
HOMEDRIVE
undHOMEPATH
ergibt. - Der durch die Umgebungsvariable
HOME
angegebene Pfad. - Der Pfad, der von der Funktion rootPath() zurückgegeben wird (die die Umgebungsvariable
SystemDrive
verwendet) - Das Verzeichnis
C:/
.
Unter Nicht-Windows-Betriebssystemen wird die Umgebungsvariable HOME
verwendet, wenn sie existiert, andernfalls der von rootPath() zurückgegebene Pfad.
Siehe auch home(), currentPath(), rootPath(), und tempPath().
bool QDir::isAbsolute() const
Gibt true
zurück, wenn der Pfad des Verzeichnisses absolut ist; andernfalls wird false
zurückgegeben. Siehe isAbsolutePath().
Hinweis: Pfade, die mit einem Doppelpunkt (:) beginnen, werden immer als absolut betrachtet, da sie ein QResource bezeichnen.
Siehe auch isRelative(), makeAbsolute(), und cleanPath().
[static]
bool QDir::isAbsolutePath(const QString &path)
Gibt true
zurück, wenn path absolut ist; gibt false
zurück, wenn es relativ ist.
Hinweis: Pfade, die mit einem Doppelpunkt (:) beginnen, werden immer als absolut betrachtet, da sie ein QResource bezeichnen.
Siehe auch isAbsolute(), isRelativePath(), makeAbsolute(), cleanPath(), und QResource.
bool QDir::isEmpty(QDir::Filters filters = Filters(AllEntries | NoDotAndDotDot)) const
Gibt zurück, ob das Verzeichnis leer ist.
Entspricht count() == 0
mit den Filtern QDir::AllEntries | QDir::NoDotAndDotDot
, ist aber schneller, da nur geprüft wird, ob das Verzeichnis mindestens einen Eintrag enthält.
Hinweis: Sofern Sie die filters -Flags nicht so setzen, dass sie QDir::NoDotAndDotDot
einschließen (wie es der Standardwert tut), ist kein Verzeichnis leer.
Siehe auch count(), entryList(), und setFilter().
bool QDir::isReadable() const
Gibt true
zurück, wenn das Verzeichnis lesbar ist und wir Dateien nach Namen öffnen können; andernfalls wird false
zurückgegeben.
Warnung: Ein falscher Wert dieser Funktion ist keine Garantie dafür, dass die Dateien im Verzeichnis nicht zugänglich sind.
Siehe auch QFileInfo::isReadable().
bool QDir::isRelative() const
Gibt true
zurück, wenn der Verzeichnispfad relativ ist; andernfalls wird false zurückgegeben. (Unter Unix ist ein Pfad relativ, wenn er nicht mit einem "/" beginnt).
Hinweis: Pfade, die mit einem Doppelpunkt (:) beginnen, werden immer als absolut betrachtet, da sie ein QResource bezeichnen.
Siehe auch makeAbsolute(), isAbsolute(), isAbsolutePath(), und cleanPath().
[static]
bool QDir::isRelativePath(const QString &path)
Gibt true
zurück, wenn path relativ ist; gibt false
zurück, wenn es absolut ist.
Hinweis: Pfade, die mit einem Doppelpunkt (:) beginnen, werden immer als absolut betrachtet, da sie ein QResource bezeichnen.
Siehe auch isRelative(), isAbsolutePath(), und makeAbsolute().
bool QDir::isRoot() const
Gibt true
zurück, wenn das Verzeichnis das Stammverzeichnis ist; andernfalls wird false
zurückgegeben.
Hinweis: Wenn das Verzeichnis ein symbolischer Link auf das Stammverzeichnis ist, gibt diese Funktion false
zurück. Wenn Sie dies testen wollen, verwenden Sie canonicalPath(), z.B.
QDir dir("/tmp/root_link"); dir = dir.canonicalPath();if (dir.isRoot()) qWarning("It is a root link");
Siehe auch root() und rootPath().
[static constexpr noexcept]
QChar QDir::listSeparator()
Gibt das native Pfadlisten-Trennzeichen zurück: ':' unter Unix und ';' unter Windows.
Siehe auch separator().
bool QDir::makeAbsolute()
Konvertiert den Verzeichnispfad in einen absoluten Pfad. Wenn er bereits absolut ist, passiert nichts. Gibt true
zurück, wenn die Umwandlung erfolgreich war; andernfalls false
.
Siehe auch isAbsolute(), isAbsolutePath(), isRelative(), und cleanPath().
[static]
bool QDir::match(const QString &filter, const QString &fileName)
Gibt true
zurück, wenn fileName mit dem Platzhaltermuster (glob) filter übereinstimmt; andernfalls wird false
zurückgegeben. filter kann mehrere durch Leerzeichen oder Semikolon getrennte Muster enthalten. Bei der Suche wird die Groß- und Kleinschreibung nicht berücksichtigt.
Siehe auch QRegularExpression::fromWildcard(), entryList(), und entryInfoList().
[static]
bool QDir::match(const QStringList &filters, const QString &fileName)
Dies ist eine überladene Funktion.
Gibt true
zurück, wenn fileName mit einem der Platzhaltermuster (glob) in der Liste von filters übereinstimmt; andernfalls gibt sie false
zurück. Die Groß- und Kleinschreibung wird nicht berücksichtigt.
Siehe auch QRegularExpression::fromWildcard(), entryList(), und entryInfoList().
[since 6.3]
bool QDir::mkdir(const QString &dirName, QFileDevice::Permissions permissions) const
Erzeugt ein Unterverzeichnis namens dirName.
Bei Erfolg wird true
zurückgegeben, andernfalls false
.
Wenn das Verzeichnis bereits existiert, wenn diese Funktion aufgerufen wird, gibt sie false
zurück.
Die Berechtigungen für das erstellte Verzeichnis werden auf permissions gesetzt.
Auf POSIX-Systemen werden die Berechtigungen durch den Wert von umask
beeinflusst.
Unter Windows werden die Berechtigungen durch ACLs emuliert. Diese ACLs können in nicht-kanonischer Reihenfolge sein, wenn der Gruppe weniger Rechte als anderen gewährt werden. Dateien und Verzeichnisse mit solchen Berechtigungen erzeugen Warnungen, wenn die Registerkarte Sicherheit im Dialogfeld Eigenschaften geöffnet wird. Wenn Sie der Gruppe alle Rechte gewähren, die anderen gewährt werden, werden solche Warnungen vermieden.
Diese Funktion wurde in Qt 6.3 eingeführt.
Siehe auch rmdir().
bool QDir::mkdir(const QString &dirName) const
Dies ist eine überladene Funktion.
Erzeugt ein Unterverzeichnis namens dirName mit Standardberechtigungen.
Auf POSIX-Systemen werden standardmäßig alle von umask
erlaubten Berechtigungen gewährt. Unter Windows erbt das neue Verzeichnis seine Berechtigungen von seinem Elternverzeichnis.
bool QDir::mkpath(const QString &dirPath) const
Erzeugt den Verzeichnispfad dirPath.
Die Funktion erstellt alle übergeordneten Verzeichnisse, die zum Erstellen des Verzeichnisses erforderlich sind.
Bei Erfolg wird true
zurückgegeben, andernfalls false
.
Wenn der Pfad bereits existiert, wenn diese Funktion aufgerufen wird, gibt sie true zurück.
Siehe auch rmpath().
QStringList QDir::nameFilters() const
Gibt die durch setNameFilters() gesetzte Stringliste zurück.
Siehe auch setNameFilters().
QString QDir::path() const
Gibt den Pfad zurück. Dieser kann symbolische Links enthalten, darf aber niemals überflüssige ".", ".." oder mehrere Trennzeichen enthalten.
Der zurückgegebene Pfad kann entweder absolut oder relativ sein (siehe setPath()).
Siehe auch setPath(), absolutePath(), exists(), cleanPath(), dirName(), absoluteFilePath(), toNativeSeparators(), und makeAbsolute().
void QDir::refresh() const
Aktualisiert die Verzeichnisinformationen.
QString QDir::relativeFilePath(const QString &fileName) const
Gibt den Pfad zu fileName relativ zum Verzeichnis zurück.
QDir dir("/home/bob"); QString s; s = dir.relativeFilePath("images/file.jpg"); // s is "images/file.jpg" s = dir.relativeFilePath("/home/mary/file.txt"); // s is "../mary/file.txt"
Siehe auch absoluteFilePath(), filePath(), und canonicalPath().
bool QDir::remove(const QString &fileName)
Entfernt die Datei, fileName.
Gibt true
zurück, wenn die Datei erfolgreich entfernt wurde; andernfalls wird false
zurückgegeben.
bool QDir::removeRecursively()
Entfernt das Verzeichnis einschließlich seines gesamten Inhalts.
Gibt bei Erfolg true
zurück, andernfalls false.
Wenn eine Datei oder ein Verzeichnis nicht entfernt werden kann, macht removeRecursively() weiter und versucht, so viele Dateien und Unterverzeichnisse wie möglich zu löschen, und gibt dann false
zurück.
Wenn das Verzeichnis bereits entfernt wurde, gibt die Methode true
zurück (erwartetes Ergebnis bereits erreicht).
Hinweis: Diese Funktion ist für das Löschen eines kleinen anwendungsinternen Verzeichnisses (z. B. eines temporären Verzeichnisses) gedacht, aber nicht für Verzeichnisse, die für den Benutzer sichtbar sind. Bei für den Benutzer sichtbaren Operationen empfiehlt es sich vielmehr, dem Benutzer Fehler genauer zu melden, im Fehlerfall Lösungen anzubieten, den Fortschritt während des Löschvorgangs anzuzeigen, da dieser mehrere Minuten dauern kann, usw.
bool QDir::rename(const QString &oldName, const QString &newName)
Benennt eine Datei oder ein Verzeichnis von oldName nach newName um und gibt bei Erfolg true zurück, andernfalls false
.
Auf den meisten Dateisystemen schlägt rename() nur fehl, wenn oldName nicht existiert oder wenn eine Datei mit dem neuen Namen bereits existiert. Es gibt jedoch auch andere Gründe, warum rename() fehlschlagen kann. Zum Beispiel schlägt rename() auf mindestens einem Dateisystem fehl, wenn newName auf eine offene Datei zeigt.
Wenn oldName eine Datei (kein Verzeichnis) ist, die nicht sofort umbenannt werden kann, wird Qt versuchen, oldName nach newName zu kopieren und oldName zu entfernen.
Siehe auch QFile::rename().
bool QDir::rmdir(const QString &dirName) const
Entfernt das durch dirName angegebene Verzeichnis.
Das Verzeichnis muss leer sein, damit rmdir() erfolgreich ist.
Gibt bei Erfolg true
zurück, andernfalls false
.
Siehe auch mkdir().
bool QDir::rmpath(const QString &dirPath) const
Entfernt den Verzeichnispfad dirPath.
Die Funktion entfernt alle übergeordneten Verzeichnisse in dirPath, sofern sie leer sind. Dies ist das Gegenteil von mkpath(dirPath).
Gibt bei Erfolg true
zurück, andernfalls false
.
Siehe auch mkpath().
[static]
QDir QDir::root()
Gibt das Stammverzeichnis zurück.
Das Verzeichnis wird unter Verwendung des absoluten Pfads des Stammverzeichnisses erstellt, wodurch sichergestellt wird, dass sein path() dasselbe ist wie sein absolutePath().
Siehe rootPath() für Details.
Siehe auch drives(), current(), home(), und temp().
[static]
QString QDir::rootPath()
Gibt den absoluten Pfad des Stammverzeichnisses zurück.
Bei Unix-Betriebssystemen wird "/" zurückgegeben. Bei Windows-Dateisystemen wird normalerweise "c:/" zurückgegeben.
Siehe auch root(), drives(), currentPath(), homePath(), und tempPath().
[static]
QStringList QDir::searchPaths(const QString &prefix)
Gibt die Suchpfade für prefix zurück.
Siehe auch setSearchPaths() und addSearchPath().
[static]
QChar QDir::separator()
Gibt das native Verzeichnis-Trennzeichen zurück: "/" unter Unix und "\" unter Windows.
Sie müssen diese Funktion nicht verwenden, um Dateipfade zu erstellen. Wenn Sie immer "/" verwenden, wird Qt Ihre Pfade so übersetzen, dass sie dem zugrunde liegenden Betriebssystem entsprechen. Wenn Sie dem Benutzer die Pfade mit dem Trennzeichen seines Betriebssystems anzeigen wollen, verwenden Sie toNativeSeparators().
Siehe auch listSeparator().
[static]
bool QDir::setCurrent(const QString &path)
Setzt das aktuelle Arbeitsverzeichnis der Anwendung auf path. Gibt true
zurück, wenn das Verzeichnis erfolgreich gewechselt wurde; andernfalls false
.
QString absolute = "/local/bin"; QString relative = "local/bin"; QFileInfo absFile(absolute); QFileInfo relFile(relative); QDir::setCurrent(QDir::rootPath()); // absFile and relFile now point to the same file QDir::setCurrent("/tmp"); // absFile now points to "/local/bin", // while relFile points to "/tmp/local/bin"
Siehe auch current(), currentPath(), home(), root(), und temp().
void QDir::setFilter(QDir::Filters filters)
Setzt den von entryList() und entryInfoList() verwendeten Filter auf filters. Der Filter wird verwendet, um die Art der Dateien anzugeben, die von entryList() und entryInfoList() zurückgegeben werden sollen. Siehe QDir::Filter.
Siehe auch filter() und setNameFilters().
void QDir::setNameFilters(const QStringList &nameFilters)
Setzt die von entryList() und entryInfoList() verwendeten Namensfilter auf die von nameFilters angegebene Liste von Filtern.
Jeder Namensfilter ist ein Wildcard-Filter (globbing), der die Wildcards *
und ?
versteht. Siehe QRegularExpression::fromWildcard().
Der folgende Code setzt zum Beispiel drei Namensfilter auf QDir, um sicherzustellen, dass nur Dateien mit Erweiterungen aufgelistet werden, die typischerweise für C++-Quelldateien verwendet werden:
QStringList filters; filters << "*.cpp" << "*.cxx" << "*.cc"; dir.setNameFilters(filters);
Siehe auch nameFilters() und setFilter().
void QDir::setPath(const QString &path)
Setzt den Pfad des Verzeichnisses auf path. Der Pfad wird von überflüssigen ".", ".." und von mehrfachen Trennzeichen bereinigt. Es wird nicht geprüft, ob ein Verzeichnis mit diesem Pfad tatsächlich existiert; Sie können dies jedoch mit exists() selbst überprüfen.
Der Pfad kann entweder absolut oder relativ sein. Absolute Pfade beginnen mit dem Verzeichnistrennzeichen "/" (unter Windows optional mit vorangestellter Laufwerksangabe). Relative Dateinamen beginnen mit einem Verzeichnisnamen oder einem Dateinamen und geben einen Pfad relativ zum aktuellen Verzeichnis an. Ein Beispiel für einen absoluten Pfad ist die Zeichenfolge "/tmp/quartz", ein relativer Pfad könnte wie "src/fatlib" aussehen.
Siehe auch path(), absolutePath(), exists(), cleanPath(), dirName(), absoluteFilePath(), isRelative(), und makeAbsolute().
[since 6.0]
void QDir::setPath(const std::filesystem::path &path)
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.0 eingeführt.
[static]
void QDir::setSearchPaths(const QString &prefix, const QStringList &searchPaths)
Setzt oder ersetzt die Suchpfade von Qt für Dateinamen mit dem Präfix prefix bis searchPaths.
Um ein Präfix für einen Dateinamen anzugeben, stellen Sie das Präfix gefolgt von einem einzelnen Doppelpunkt voran (z.B. "images:undo.png", "xmldocs:books.xml"). prefix kann nur Buchstaben oder Zahlen enthalten (d.h. es kann weder einen Doppelpunkt noch einen Schrägstrich enthalten).
Qt verwendet diesen Suchpfad, um Dateien mit einem bekannten Präfix zu finden. Die Suchpfad-Einträge werden der Reihe nach getestet, beginnend mit dem ersten Eintrag.
QDir::setSearchPaths("icons", QStringList(QDir::homePath() + "/images")); QDir::setSearchPaths("docs", QStringList(":/embeddedDocuments")); ... QPixmap pixmap("icons:undo.png"); // will look for undo.png in QDir::homePath() + "/images" QFile file("docs:design.odf"); // will look in the :/embeddedDocuments resource path
Das Präfix des Dateinamens muss mindestens 2 Zeichen lang sein, um Konflikte mit Windows-Laufwerksbuchstaben zu vermeiden.
Suchpfade können Pfade zu The Qt Resource System enthalten.
Siehe auch searchPaths().
void QDir::setSorting(QDir::SortFlags sort)
Legt die von entryList() und entryInfoList() verwendete Sortierreihenfolge fest.
Die sort wird durch ODER-Verknüpfung von Werten aus der Aufzählung QDir::SortFlag angegeben.
Siehe auch sorting() und SortFlag.
QDir::SortFlags QDir::sorting() const
Gibt den mit setSorting() gesetzten Wert zurück.
Siehe auch setSorting() und SortFlag.
[noexcept]
void QDir::swap(QDir &other)
Tauscht diese QDir Instanz mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.
[static]
QDir QDir::temp()
Gibt das temporäre Verzeichnis des Systems zurück.
Das Verzeichnis wird unter Verwendung des absoluten kanonischen Pfades des temporären Verzeichnisses erstellt, wodurch sichergestellt wird, dass path() mit absolutePath() identisch ist.
Siehe tempPath() für Details.
Siehe auch drives(), current(), home(), und root().
[static]
QString QDir::tempPath()
Gibt den absoluten kanonischen Pfad des temporären Verzeichnisses des Systems zurück.
Auf Unix/Linux-Systemen ist dies der Pfad in der Umgebungsvariablen TMPDIR
oder /tmp
, wenn TMPDIR
nicht definiert ist. Unter Windows ist dies normalerweise der Pfad in der Umgebungsvariablen TEMP
oder TMP
. Der von dieser Methode zurückgegebene Pfad endet nicht mit einem Verzeichnis-Trennzeichen, es sei denn, es handelt sich um das Stammverzeichnis (eines Laufwerks).
Siehe auch temp(), currentPath(), homePath(), und rootPath().
[static]
QString QDir::toNativeSeparators(const QString &pathName)
Gibt pathName zurück, wobei die '/'-Trennzeichen in Trennzeichen umgewandelt werden, die für das zugrunde liegende Betriebssystem geeignet sind.
Unter Windows gibt toNativeSeparators("c:/winnt/system32") "c:\winnt\system32" zurück.
Die zurückgegebene Zeichenkette kann auf einigen Betriebssystemen, z. B. auf Unix, mit dem Argument übereinstimmen.
Siehe auch fromNativeSeparators() und separator().
[noexcept]
QDir &QDir::operator=(QDir &&other)
Verschieben - weist other dieser QDir Instanz zu.
QDir &QDir::operator=(const QDir &dir)
Erstellt eine Kopie des Objekts dir und ordnet sie diesem Objekt QDir zu.
QString QDir::operator[](qsizetype pos) const
Gibt den Dateinamen an der Position pos in der Liste der Dateinamen zurück. Äquivalent zu entryList().at(index). pos muss eine gültige Indexposition in der Liste sein (d.h. 0 <= pos < count()).
Hinweis: In Qt-Versionen vor 6.5 war pos ein int
, nicht qsizetype
.
Verwandte Nicht-Mitglieder
[noexcept]
bool operator!=(const QDir &lhs, const QDir &rhs)
Gibt true
zurück, wenn das Verzeichnis lhs und das Verzeichnis rhs unterschiedliche Pfade oder unterschiedliche Sortier- oder Filtereinstellungen haben; andernfalls wird false
zurückgegeben.
Beispiel:
// Das aktuelle Verzeichnis ist "/usr/local"QDir d1("/usr/local/bin"); d1.setFilter(QDir::Executable);QDir d2("bin");if (d1 != d2) qDebug("They differ");
[noexcept]
bool operator==(const QDir &lhs, const QDir &rhs)
Gibt true
zurück, wenn die Verzeichnisse lhs und rhs denselben Pfad haben und ihre Sortier- und Filtereinstellungen übereinstimmen; andernfalls wird false
zurückgegeben.
Beispiel:
© 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.