Auf dieser Seite

QDir Class

Die Klasse „QDir“ ermöglicht den Zugriff auf Verzeichnisstrukturen und deren Inhalte. Mehr...

Header: #include <QDir>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

QDir-Vergleiche

KategorieVergleichbare Typen
GleichheitQDir

Ö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()
bool mkdir(const QString &dirName, std::optional<QFileDevice::Permissions> permissions = std::nullopt) const
bool mkpath(const QString &dirPath, std::optional<QFileDevice::Permissions> permissions = std::nullopt) 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)
bool operator!=(const QDir &lhs, const QDir &rhs)
bool operator==(const QDir &lhs, const QDir &rhs)

Ausführliche Beschreibung

Ein QDir dient dazu, Pfadnamen zu bearbeiten, auf Informationen zu Pfaden und Dateien zuzugreifen und das zugrunde liegende Dateisystem zu bearbeiten. Es kann auch verwendet werden, um auf das Qt-Ressourcensystem zuzugreifen.

Qt verwendet „/“ als universelles Verzeichnistrennzeichen, genauso wie „/“ in URLs als Pfadtrennzeichen verwendet wird. Wenn Sie stets „/“ als Verzeichnistrennzeichen verwenden, wandelt Qt Ihre Pfade so um, dass sie dem zugrunde liegenden Betriebssystem entsprechen.

Ein QDir kann mithilfe eines relativen oder eines absoluten Pfads auf eine Datei verweisen. Absolute Pfade beginnen mit dem Verzeichnistrennzeichen (unter Windows optional mit einer Laufwerksangabe davor). Relative Dateinamen beginnen mit einem Verzeichnisnamen oder einem Dateinamen und geben einen Pfad relativ zum aktuellen Verzeichnis an.

Beispiele für absolute Pfade:

QDir("/home/user/Documents");
QDir("C:/Users");

Unter Windows wird das zweite Beispiel oben beim Zugriff auf Dateien in „ C:\Users “ umgewandelt.

Beispiele für relative Pfade:

QDir("images/landscape.png");

Mit den Funktionen ` isRelative()` oder ` isAbsolute()` können Sie überprüfen, ob ein `QDir` einen relativen oder einen absoluten Dateipfad verwendet. Rufen Sie ` makeAbsolute()` auf, um einen relativen `QDir` in einen absoluten umzuwandeln.

Hinweis: Pfade , die mit einem Doppelpunkt (:) beginnen, werden immer als absolut betrachtet, da sie ein „ QResource “ bezeichnen.

Der Pfad eines Verzeichnisses kann mit der Funktion ` path()` abgerufen und mit der Funktion ` setPath()` ein neuer Pfad festgelegt werden. Der absolute Pfad zu einem Verzeichnis wird durch Aufruf von ` absolutePath()` ermittelt.

Der Name eines Verzeichnisses wird mit der Funktion ` dirName()` ermittelt. Diese gibt in der Regel das letzte Element des absoluten Pfads zurück, das den Speicherort des Verzeichnisses angibt. Sie kann jedoch auch „.“ zurückgeben, wenn das `QDir` das aktuelle Verzeichnis darstellt.

QDir("Documents/Letters/Applications").dirName(); // "Applications"
QDir().dirName();                                 // "."

Der Pfad eines Verzeichnisses kann auch mit den Funktionen „ cd()“ und „ cdUp()“ geändert werden, die beide wie bekannte Shell-Befehle funktionieren. Wenn „ cd()“ mit dem Namen eines vorhandenen Verzeichnisses aufgerufen wird, wechselt das QDir-Objekt in dieses Verzeichnis, sodass 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("..")` entspricht ` cdUp()`.

Verzeichnisse können mit ` mkdir()` erstellt, mit ` rename()` umbenannt und mit ` rmdir()` gelöscht werden.

Mit der Funktion ` exists()` können Sie prüfen, ob ein Verzeichnis mit einem bestimmten Namen vorhanden ist, und die Eigenschaften eines Verzeichnisses lassen sich mit den Funktionen ` isReadable()`, ` isAbsolute()`, ` isRelative()` und ` isRoot()` abfragen.

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 Zeichenfolgenliste mit den Namen aller Einträge in einem Verzeichnis kann mit ` entryList()` abgerufen werden. Wenn Sie Informationen zu den einzelnen Einträgen benötigen, verwenden Sie ` entryInfoList()`, um eine Liste von ` QFileInfo `-Objekten zu erhalten.

Pfade zu Dateien und Verzeichnissen innerhalb eines Verzeichnisses können mit den Funktionen ` filePath()` und ` absoluteFilePath()` erstellt werden. Die Funktion ` filePath()` gibt einen Pfad zur angegebenen Datei oder zum angegebenen Verzeichnis relativ zum Pfad des `QDir`-Objekts zurück; ` absoluteFilePath()` gibt einen absoluten Pfad zur angegebenen Datei oder zum angegebenen Verzeichnis zurück. Keine dieser Funktionen prüft, ob Dateien oder Verzeichnisse vorhanden sind; sie erstellen lediglich 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 zu reduzieren, indem Filter auf ein `QDir`-Objekt angewendet werden. 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 festlegen.

Namensfilter sind Listen von Zeichenketten, die an ` setNameFilters()` übergeben werden. Attributfilter bestehen aus einer bitweisen ODER-Kombination von `Filters` und werden beim Aufruf von ` setFilter()` angegeben. Die Sortierreihenfolge wird mithilfe von ` 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 zu überschreiben.

Das aktuelle Verzeichnis und andere spezielle Pfade

Der Zugriff auf einige gängige Verzeichnisse wird über eine Reihe statischer Funktionen ermöglicht, die QDir-Objekte zurückgeben. Darüber hinaus gibt es entsprechende Funktionen, die Zeichenketten zurückgeben:

QDirQStringRückgabewert
current()currentPath()Das Arbeitsverzeichnis der Anwendung
home()homePath()Das Home-Verzeichnis des Benutzers
root()rootPath()Das Stammverzeichnis
temp()tempPath()Das temporäre Verzeichnis des Systems

Die statische Funktion ` setCurrent()` () kann ebenfalls verwendet werden, um das Arbeitsverzeichnis der Anwendung festzulegen.

Wenn Sie das Verzeichnis suchen möchten, in dem sich die ausführbare Datei der Anwendung befindet, lesen Sie den Abschnitt „ QCoreApplication::applicationDirPath()“.

Die statische Funktion ` drives()` liefert eine Liste der Stammverzeichnisse für jedes Gerät, das ein Dateisystem enthält. Auf Unix-Systemen gibt diese Funktion eine Liste zurück, die ein einziges Stammverzeichnis „/“ enthält; unter Windows enthält die Liste in der Regel „ C:/ “ sowie möglicherweise weitere Laufwerksbuchstaben wie „ D:/ “, je nach Konfiguration des Systems des Benutzers.

Pfadbearbeitung und Zeichenketten

Pfade, die „.“-Elemente enthalten, die auf das aktuelle Verzeichnis an dieser Stelle im Pfad verweisen, „..“-Elemente, die auf das übergeordnete Verzeichnis verweisen, sowie symbolische Links können mithilfe der Funktion „ canonicalPath()“ in eine kanonische Form umgewandelt werden.

Pfade können zudem vereinfacht werden, indem mit ` cleanPath()` überflüssige „/“- und „..“-Elemente entfernt werden.

Manchmal ist es erforderlich, einen Pfad in der nativen Darstellung für die Plattform des Benutzers anzuzeigen. Die statische Funktion ` toNativeSeparators()` gibt eine Kopie des angegebenen Pfads zurück, in der jedes Verzeichnistrennzeichen durch das für das zugrunde liegende Betriebssystem geeignete Trennzeichen ersetzt wird.

Beispiele

Prüfen, ob ein Verzeichnis existiert:

QDir dir("example");
if (!dir.exists())
    qWarning("Cannot find the example directory");

(Wir könnten auch eine der statischen Hilfsfunktionen QFileInfo::exists() oder QFile::exists() verwenden.)

Verzeichnisse durchlaufen und eine Datei lesen:

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", qPrintable(file.fileName()));
}

Ein Programm, das alle Dateien im aktuellen Verzeichnis (mit Ausnahme von symbolischen Links) auflistet, sortiert nach Größe, beginnend mit der kleinsten:

#include <QDir>
#include <iostream>
#include <QCoreApplication>

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 beim Umgang mit Content-URIs einige Einschränkungen:

Siehe auch QFileInfo, QFile, QFileDialog, QCoreApplication::applicationDirPath() und das Beispiel „Fetch More“.

Dokumentation zu Mitgliedstypen

enum QDir::Filter
flags QDir::Filters

Diese Enumeration beschreibt die Filteroptionen, die für QDir verfügbar sind; z. B. für entryList() und entryInfoList(). Der Filterwert wird durch die Kombination von Werten aus der folgenden Liste unter Verwendung des bitweisen ODER-Operators festgelegt:

KonstanteWertBeschreibung
QDir::Dirs0x001Verzeichnisse auflisten, die den Filtern entsprechen.
QDir::AllDirs0x400Alle Verzeichnisse auflisten; d. h., die Filter werden nicht auf Verzeichnisnamen angewendet.
QDir::Files0x002Dateien auflisten.
QDir::Drives0x004Laufwerke auflisten (unter Unix ignoriert).
QDir::NoSymLinks0x008Symbollinks nicht auflisten (wird von Betriebssystemen ignoriert, die keine Symbollinks unterstützen).
QDir::NoDotAndDotDotNoDot | NoDotDotDie speziellen Einträge „.“ und „..“ nicht auflisten.
QDir::NoDot0x2000Den Sonder-Eintrag „.“ nicht auflisten.
QDir::NoDotDot0x4000Den speziellen Eintrag „..“ nicht auflisten.
QDir::AllEntriesDirs | Files | DrivesVerzeichnisse, Dateien, Laufwerke und symbolische Links auflisten (defekte symbolische Links werden dabei nicht aufgeführt, es sei denn, Sie geben „System“ an).
QDir::Readable0x010Listen Sie Dateien auf, auf die die Anwendung Lesezugriff hat. Der Wert „Readable“ muss mit „Dirs“ oder „Files“ kombiniert werden.
QDir::Writable0x020Dateien auflisten, auf die die Anwendung Schreibzugriff hat. Der Wert „Writable“ muss mit „Dirs“ oder „Files“ kombiniert werden.
QDir::Executable0x040Dateien auflisten, auf die die Anwendung Ausführungszugriff hat. Der Wert „Executable“ muss mit „Dirs“ oder „Files“ kombiniert werden.
QDir::Hidden0x100Verzeichnis versteckter Dateien (unter Unix Dateien, die mit einem „.“ beginnen).
QDir::System0x200Systemdateien auflisten (unter Unix sind FIFOs, Sockets und Gerätedateien enthalten; unter Windows sind „ .lnk “-Dateien enthalten)
QDir::CaseSensitive0x800Der Filter sollte die Groß-/Kleinschreibung beachten.

Funktionen, die Filter-Enum-Werte zum Filtern von Listen mit Dateien und Verzeichnissen verwenden, beziehen symbolische Links zu Dateien und Verzeichnissen mit ein, sofern Sie nicht den Wert „NoSymLinks“ festlegen.

Ein standardmäßig erstelltes ` QDir ` filtert keine Dateien anhand ihrer Berechtigungen heraus, sodass ` entryList()` und ` entryInfoList()` alle Dateien zurückgeben, die lesbar, beschreibbar, ausführbar oder eine beliebige Kombination dieser drei Eigenschaften aufweisen. Dies macht die Standardimplementierung einfach zu schreiben und gleichzeitig nützlich.

Wenn beispielsweise die Flags ` Readable`, ` Writable` und ` Files ` gesetzt werden, können alle Dateien aufgelistet werden, auf die die Anwendung Lesezugriff, Schreibzugriff oder beides hat. Wenn zusätzlich die Flags ` Dirs ` und ` Drives ` in dieser Kombination enthalten sind, können alle Laufwerke, Verzeichnisse, alle Dateien, die die Anwendung lesen, schreiben oder ausführen kann, sowie symbolische Links 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 nutzen Sie anschließend die Funktion „ QFileInfo::permissions()“, um die Berechtigungen und den Eigentümer für jede Datei zu ermitteln.

Der Typ „Filters“ ist ein `typedef` für ` QFlags<Filter>`. Er speichert eine ODER-Kombination von Filterwerten.

enum QDir::SortFlag
flags QDir::SortFlags

Diese Enumeration beschreibt die Sortieroptionen, die für ` QDir` verfügbar sind, z. B. für ` entryList()` und ` entryInfoList()`. Der Sortierwert wird durch eine OR-Verknüpfung der Werte aus der folgenden Liste festgelegt:

KonstanteWertBeschreibung
QDir::Name0x00Nach Namen sortieren.
QDir::Time0x01Nach Zeit sortieren (Änderungszeit).
QDir::Size0x02Nach Dateigröße sortieren.
QDir::Type0x80Nach Dateityp (Dateiendung) sortieren.
QDir::Unsorted0x03Nicht sortieren.
QDir::NoSort-1Standardmäßig nicht sortiert.
QDir::DirsFirst0x04Zuerst die Verzeichnisse, dann die Dateien anzeigen.
QDir::DirsLast0x20Zuerst die Dateien, dann die Verzeichnisse.
QDir::Reversed0x08Sortierreihenfolge umkehren.
QDir::IgnoreCase0x10Groß-/Kleinschreibung ignorieren.
QDir::LocaleAware0x40Elemente entsprechend den aktuellen Ländereinstellungen sortieren.

Sie können nur eine der ersten vier Optionen angeben.

Wenn Sie sowohl „DirsFirst“ als auch „Reversed“ angeben, werden Verzeichnisse weiterhin zuerst aufgeführt, jedoch 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 ODER-Kombination von „SortFlag“-Werten.

Dokumentation der Mitgliedsfunktionen

QDir::QDir(const QString &path = QString())

Erstellt ein QDir, das auf das angegebene Verzeichnis path verweist. Ist path leer, wird das Arbeitsverzeichnis des Programms („.“) verwendet.

Siehe auch currentPath().

[since 6.0] QDir::QDir(const std::filesystem::path &path)

Erstellt ein QDir, das auf das angegebene Verzeichnis path verweist. Ist path leer, 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)

Erstellt ein QDir mit dem Pfad „ path “, das seine Einträge anhand des Namens unter Verwendung von „ nameFilter “ und anhand von Attributen unter Verwendung von „ filters “ filtert. Außerdem sortiert es die Namen unter Verwendung von „ sort “.

Der Standardwert für ` nameFilter ` ist eine leere Zeichenkette, wodurch nichts ausgeschlossen wird; der Standardwert für ` filters ` ist ` AllEntries`, wodurch ebenfalls nichts ausgeschlossen wird. Der Standardwert für ` 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 vorhanden sein.

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)

Erstellt ein QDir mit dem Pfad „ path “, das seine Einträge anhand des Namens unter Verwendung von „ nameFilter “ und anhand von Attributen unter Verwendung von „ filters “ filtert. Außerdem sortiert es die Namen unter Verwendung von „ sort “.

Der Standardwert für ` nameFilter ` ist eine leere Zeichenkette, wodurch nichts ausgeschlossen wird; der Standardwert für ` filters ` ist ` AllEntries`, wodurch ebenfalls nichts ausgeschlossen wird. Der Standardwert für ` sort ` ist ` Name | IgnoreCase`, d. h. Sortierung nach Namen ohne Berücksichtigung der Groß-/Kleinschreibung.

Ist path leer, verwendet QDir „.“ (das aktuelle Verzeichnis). Ist nameFilter eine leere Zeichenkette, verwendet QDir den Namensfilter „*“ (alle Dateien).

Hinweis: „ path “ muss nicht vorhanden sein.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch „ exists()“, „ setPath()“, „ setNameFilters()“, „ setFilter()“ und „ setSorting()“.

QDir::QDir(const QDir &dir)

Erstellt ein QDir-Objekt, das eine Kopie des QDir-Objekts für das Verzeichnis dir ist.

Siehe auch operator=().

[noexcept] QDir::~QDir()

Löscht das „ QDir “-Objekt und gibt dessen 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 vorhanden ist; siehe jedoch exists(). Überflüssige 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 (einen Pfad, der mit „/“ oder einer Laufwerksangabe beginnt), der symbolische Links enthalten kann, jedoch niemals überflüssige „.“, „..“ 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 denselben String zurück wie absolutePath(). Diese Methode gibt eine leere Zeichenkette zurück, wenn der Eintrag nicht existiert, nicht erreichbar ist (z. B. weil der aktuelle Benutzer keinen Zugriff auf einen Verzeichnispfad hat) oder wenn beim Kanonisieren des Pfads ein Fehler auftritt (normalerweise aufgrund hängender symbolischer Links).

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)

Wechselt das Verzeichnis von „ QDir “ zu „ 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("..")` entspricht dem Aufruf von ` cdUp()`.

Siehe auch cdUp(), isReadable(), exists() und path().

bool QDir::cdUp()

Wechselt das Verzeichnis, indem vom aktuellen Verzeichnis des „ QDir “ ein Verzeichnis nach oben gewechselt wird.

Gibt „ true “ zurück, wenn das neue Verzeichnis existiert; andernfalls wird „ false “ zurückgegeben. Beachten Sie, dass die logische Operation „cdUp()“ nicht ausgeführt wird, wenn das neue Verzeichnis nicht existiert.

Hinweis: Unter Android wird dies für Content-URIs nicht unterstützt. Weitere Informationen finden Sie unter DocumentFile.getParentFile().

Siehe auch „ cd()“, „ isReadable()“, „ exists()“ und „ path()“.

[static] QString QDir::cleanPath(const QString &path)

Gibt ` path ` zurück, wobei Verzeichnis-Trennzeichen normalisiert (d. h. plattformspezifische Trennzeichen werden in „/“ umgewandelt) und überflüssige entfernt sowie „.“ und „..“ (soweit möglich) aufgelöst werden.

Symbolische Links bleiben erhalten. Diese Funktion gibt nicht den kanonischen Pfad zurück, sondern die einfachste Version der Eingabe. Beispielsweise 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.

Entspricht ` 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 anhand des absoluten Pfads des aktuellen Verzeichnisses gebildet, wodurch sichergestellt wird, dass die Funktion „ path()“ dasselbe Ergebnis liefert wie „ absolutePath()“.

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 diese Funktion 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 mit dem Pfad identisch. So könnte beispielsweise ein Verzeichnis mit dem Namen „mail“ den Pfad „/var/spool/mail“ haben. Wenn das Verzeichnis keinen Namen hat (z. B. wenn es sich um das Stammverzeichnis handelt), wird eine leere Zeichenkette zurückgegeben.

Es wird nicht überprüft, ob ein Verzeichnis mit diesem Namen tatsächlich existiert; siehe jedoch exists().

Siehe auch path(), filePath(), absolutePath() und absoluteFilePath().

[static] QFileInfoList QDir::drives()

Gibt eine Liste der Stammverzeichnisse auf diesem System zurück.

Unter Windows gibt diese Funktion eine Liste von „ QFileInfo “-Objekten zurück, die „C:/“, „D:/“ usw. enthalten. Laufwerke mit herausnehmbaren Medien, die leer sind, werden dabei nicht zurückgegeben. Auf anderen Betriebssystemen gibt die Funktion eine Liste zurück, die nur ein Stammverzeichnis enthält (d. h. „/“).

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 zuvor mit ` setNameFilters()` und ` setFilter()` festgelegten Namens- und Attributfiltern sowie sortiert nach den mit ` setSorting()` festgelegten Flags.

Der Namensfilter, der Dateiattributfilter und die Sortierspezifikation können mithilfe der Argumente ` nameFilters`, ` filters` und ` sort ` überschrieben werden.

Gibt eine leere Liste zurück, wenn das Verzeichnis nicht lesbar ist, nicht existiert oder wenn keine Einträge der Spezifikation entsprechen.

Bei großen Verzeichnissen kann diese Funktion einen kurzzeitigen Speicheranstieg verursachen, da für jeden Eintrag im Verzeichnis eine Instanz von ` QFileInfo ` erstellt wird. Ziehen Sie die Verwendung von ` QDirListing ` in Betracht, wenn Sie die Elemente einzeln durchlaufen möchten.

Siehe auch entryList(), setNameFilters(), setSorting(), setFilter(), isReadable() und exists().

QFileInfoList QDir::entryInfoList(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, sortiert nach den zuvor mit „ setNameFilters()“ und „ setFilter()“ festgelegten Namens- und Attributfiltern sowie nach den mit „ setSorting()“ festgelegten Flags.

Die Attributfilter und Sortierspezifikationen können mithilfe der Argumente ` filters ` und ` sort ` überschrieben werden.

Gibt eine leere Liste zurück, wenn das Verzeichnis nicht lesbar ist, nicht existiert oder wenn keine Einträge der Spezifikation entsprechen.

Bei großen Verzeichnissen kann diese Funktion zu einem kurzzeitigen Anstieg des Speicherbedarfs führen, da sie für jeden Eintrag im Verzeichnis eine Instanz von ` QFileInfo ` erstellt. Ziehen Sie die Verwendung von ` QDirListing ` in Betracht, wenn Sie die Elemente einzeln durchlaufen möchten.

Dies ist eine überladene Funktion.

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 zuvor mit ` setNameFilters()` und ` setFilter()` festgelegten Namens- und Attributfiltern und sortiert nach den mit ` setSorting()` festgelegten Flags.

Der Namensfilter, der Dateiattributfilter und die Sortierspezifikation können mithilfe der Argumente ` nameFilters`, ` filters` und ` sort ` überschrieben werden.

Gibt eine leere Liste zurück, wenn das Verzeichnis nicht lesbar ist, nicht existiert oder wenn keine Einträge der Spezifikation entsprechen.

Bei großen Verzeichnissen kann diese Funktion zu einem kurzzeitigen Anstieg des Speicherbedarfs führen, da sie für jeden Eintrag im Verzeichnis eine Instanz von ` QString ` erstellt. Ziehen Sie die Verwendung von ` QDirListing ` in Betracht, wenn Sie die Elemente nacheinander durchlaufen möchten.

Siehe auch entryInfoList(), setNameFilters(), setSorting() und setFilter().

QStringList QDir::entryList(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 zuvor mit ` setNameFilters()` und ` setFilter()` festgelegten Namens- und Attributfiltern und sortiert nach den mit ` setSorting()` festgelegten Flags.

Die Attributfilter und Sortierspezifikationen können mithilfe der Argumente ` filters ` und ` sort ` überschrieben werden.

Gibt eine leere Liste zurück, wenn das Verzeichnis nicht lesbar ist, nicht existiert oder wenn keine Einträge der Spezifikation entsprechen.

Hinweis: Um Symlinks aufzulisten, die auf nicht vorhandene Dateien verweisen, muss „ System “ an den Filter übergeben werden.

Bei großen Verzeichnissen kann diese Funktion zu einem kurzzeitigen Anstieg des Speicherbedarfs führen, da sie für jeden Eintrag im Verzeichnis eine Instanz von ` QString ` erstellt. Ziehen Sie die Verwendung von ` QDirListing ` in Betracht, wenn Sie die Elemente einzeln durchlaufen möchten.

Dies ist eine überladene Funktion.

Siehe auch entryInfoList(), setNameFilters(), setSorting() und setFilter().

bool QDir::exists(const QString &name) const

Gibt „ true “ zurück, wenn die Datei „ name “ existiert; andernfalls wird „false“ zurückgegeben.

Sofern ` name ` keinen absoluten Dateipfad enthält, wird davon ausgegangen, dass der Dateiname relativ zum Verzeichnis selbst ist; daher wird diese Funktion in der Regel verwendet, um zu prüfen, ob Dateien in einem Verzeichnis vorhanden sind.

Siehe auch QFileInfo::exists() und QFile::exists().

bool QDir::exists() const

Gibt „ true “ zurück, wenn das Verzeichnis existiert; andernfalls wird „ false “ zurückgegeben. (Wird eine Datei mit demselben Namen gefunden, gibt diese Funktion „false“ zurück.)

Die Überladung dieser Funktion, die ein Argument akzeptiert, wird verwendet, um das Vorhandensein von Dateien und Verzeichnissen innerhalb eines Verzeichnisses zu prüfen.

Dies ist eine überladene Funktion.

Siehe auch „ QFileInfo::exists()“ und „ QFile::exists()“.

QString QDir::filePath(const QString &fileName) const

Gibt den Pfadnamen einer Datei im Verzeichnis zurück. Es wird nicht geprüft, ob die Datei tatsächlich im Verzeichnis vorhanden ist; siehe jedoch exists(). Ist der QDir relativ, ist auch der zurückgegebene Pfadname relativ. Überflüssige 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() festgelegten Wert zurück

Siehe auch ` setFilter()`.

[static] QString QDir::fromNativeSeparators(const QString &pathName)

Gibt „ pathName “ zurück, wobei „/“ als Dateitrennzeichen verwendet wird. Unter Windows liefert beispielsweise fromNativeSeparators(„c:\\winnt\\system32 “) den Wert „c:/winnt/system32“ zurück.

Die zurückgegebene Zeichenkette kann auf einigen Betriebssystemen, beispielsweise unter Unix, mit dem Argument übereinstimmen.

Siehe auch ` toNativeSeparators()` und ` separator()`.

[static] QDir QDir::home()

Gibt das Home-Verzeichnis des Benutzers zurück.

Das Verzeichnis wird unter Verwendung des absoluten Pfads des Home-Verzeichnisses gebildet, wodurch sichergestellt wird, dass seine Funktion „ path()“ dieselben Ergebnisse liefert wie „ absolutePath()“.

Weitere Informationen finden Sie unter ` homePath()`.

Siehe auch drives(), current(), root() und temp().

[static] QString QDir::homePath()

Gibt den absoluten Pfad zum Home-Verzeichnis des Benutzers zurück.

Unter Windows gibt diese Funktion das Verzeichnis des Profils des aktuellen Benutzers zurück. In der Regel lautet dieses:

C:/Users/Username

Verwenden Sie die Funktion ` toNativeSeparators()` (), um die Trennzeichen in die für das jeweilige Betriebssystem geeigneten Zeichen umzuwandeln.

Wenn das Profilverzeichnis des aktuellen Benutzers nicht existiert oder nicht abgerufen werden kann, werden die folgenden Alternativen (in der angegebenen Reihenfolge) geprüft, bis ein vorhandener und verfügbarer Pfad gefunden wird:

  1. Der durch die Umgebungsvariable ` USERPROFILE ` angegebene Pfad.
  2. Der Pfad, der durch Verknüpfung der Umgebungsvariablen ` HOMEDRIVE ` und ` HOMEPATH ` gebildet wird.
  3. Der durch die Umgebungsvariable ` HOME ` angegebene Pfad.
  4. Der von der Funktion ` rootPath()` zurückgegebene Pfad (die die Umgebungsvariable ` SystemDrive ` verwendet)
  5. Das Verzeichnis „ C:/ “.

Unter anderen Betriebssystemen als Windows wird die Umgebungsvariable „ HOME “ verwendet, sofern sie vorhanden ist; andernfalls wird der von „ rootPath()“ zurückgegebene Pfad verwendet.

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 “ ein absoluter Pfad ist; gibt „ false “ zurück, wenn es sich um einen relativen Pfad handelt.

Hinweis: Pfade , die mit einem Doppelpunkt (:) beginnen, werden immer als absolut betrachtet, da sie einen 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 jedoch schneller, da lediglich geprüft wird, ob das Verzeichnis mindestens einen Eintrag enthält.

Hinweis: Sofern Sie die Flags von ` filters `nicht so setzen, dass ` QDir::NoDotAndDotDot ` einbezogen wird (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 Dateien anhand ihres Namens geöffnet werden können; andernfalls wird „ false “ zurückgegeben.

Warnung: Ein falscher Wert dieser Funktion ist keine Garantie dafür, dass auf die Dateien im Verzeichnis nicht zugegriffen werden kann.

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 es sich bei dem Verzeichnis um das Stammverzeichnis handelt; andernfalls wird „ false “ zurückgegeben.

Hinweis: Wenn das Verzeichnis ein symbolischer Link zum Stammverzeichnis ist, gibt diese Funktion „ false “ zurück. Wenn Sie dies prüfen möchten, 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 systemeigene Trennzeichen für Pfadlisten zurück: „:“ unter Unix und „;“ unter Windows.

Siehe auch separator().

bool QDir::makeAbsolute()

Wandelt den Verzeichnispfad in einen absoluten Pfad um. Ist der Pfad bereits absolut, geschieht nichts. Gibt „ true “ zurück, wenn die Umwandlung erfolgreich war; andernfalls wird „ false “ zurückgegeben.

Siehe auch isAbsolute(), isAbsolutePath(), isRelative() und cleanPath().

[static] bool QDir::match(const QString &filter, const QString &fileName)

Gibt „ true “ zurück, wenn die „ fileName “ mit dem Platzhaltermuster (Glob) „ filter “ übereinstimmt; andernfalls wird „ false “ zurückgegeben. Die „ filter “ kann mehrere Muster enthalten, die durch Leerzeichen oder Semikolons getrennt sind. Bei der Übereinstimmungsprüfung wird die Groß-/Kleinschreibung nicht berücksichtigt.

Siehe auch „ QRegularExpression::fromWildcard()“, „ entryList()“ und „ entryInfoList()“.

[static] bool QDir::match(const QStringList &filters, const QString &fileName)

Gibt „ true “ zurück, wenn „ fileName “ mit einem der Platzhaltermuster (Glob-Muster) in der Liste „ filters “ übereinstimmt; andernfalls wird „ false “ zurückgegeben. Bei der Übereinstimmungsprüfung wird die Groß-/Kleinschreibung nicht berücksichtigt.

Dies ist eine überladene Funktion.

Siehe auch QRegularExpression::fromWildcard(), entryList() und entryInfoList().

bool QDir::mkdir(const QString &dirName, std::optional<QFileDevice::Permissions> permissions = std::nullopt) const

Erstellt ein Unterverzeichnis namens „ dirName “ mit dem angegebenen „ permissions “.

Wenn „ permissions “ gleich „ std::nullopt “ ist (Standard), legt diese Funktion die Standardberechtigungen fest.

Gibt bei Erfolg „ true “ zurück; gibt „ false “ zurück, wenn der Vorgang fehlgeschlagen ist oder „ dirName “ bereits existierte.

Falls „ dirName “ bereits existierte, ändert diese Methode dessen Berechtigungen nicht.

Auf POSIX-Systemen werden die Berechtigungen von „ permissions “ durch die umask (Datei-Erstellungsmaske) des aktuellen Prozesses geändert, was bedeutet, dass einige Berechtigungsbits möglicherweise deaktiviert sind.

Unter Windows erbt ein neues Verzeichnis standardmäßig die Berechtigungen seines übergeordneten Verzeichnisses. „ permissions “ werden mithilfe von ACLs emuliert. Diese ACLs können in nicht-kanonischer Reihenfolge vorliegen, wenn der Gruppe weniger Berechtigungen gewährt werden als anderen. Dateien und Verzeichnisse mit solchen Berechtigungen lösen Warnungen aus, wenn die Registerkarte „Sicherheit“ des Eigenschaftsdialogs geöffnet wird. Durch die Vergabe aller Berechtigungen, die anderen gewährt werden, an die Gruppe lassen sich solche Warnungen vermeiden.

Hinweis: Mit Qt 6.10 wurde der Parameter „ permissions “ hinzugefügt. Um das alte Verhalten (unter Verwendung der plattformspezifischen Standardberechtigungen) von ` mkdir(const QString &) ` zu erhalten, setzen Sie ` permissions ` auf ` std::nullopt ` (Standard). Diese neue Methode ersetzt zudem transparent die Überladung von ` mkdir(const QString &, QFile::Permissions) `.

Siehe auch „ rmdir()“, „ mkpath()“ und „ rmpath()“.

bool QDir::mkpath(const QString &dirPath, std::optional<QFileDevice::Permissions> permissions = std::nullopt) const

Erstellt ein Verzeichnis mit dem Namen „ dirPath “.

Falls „ dirPath “ noch nicht existiert, erstellt diese Methode das Verzeichnis – zusammen mit allen nicht vorhandenen übergeordneten Verzeichnissen – mit „ permissions “.

Falls „ dirPath “ bereits existiert, ändert diese Methode die Berechtigungen nicht; dasselbe gilt für bereits vorhandene übergeordnete Verzeichnisse.

Ist „ permissions “ gleich „ std::nullopt “ (der Standardwert), setzt diese Funktion die Standardberechtigungen.

Gibt bei Erfolg oder falls „ dirPath “ bereits existiert „ true “ zurück; andernfalls wird „ false “ zurückgegeben.

Auf POSIX-Systemen werden ` permissions ` durch die umask (Dateierstellungsmaske) des aktuellen Prozesses, was bedeutet, dass einige Berechtigungsbits möglicherweise deaktiviert sind.

Unter Windows erbt ein neues Verzeichnis standardmäßig die Berechtigungen seines übergeordneten Verzeichnisses. „ permissions “ werden mithilfe von ACLs emuliert. Diese ACLs können in nicht-kanonischer Reihenfolge vorliegen, wenn der Gruppe weniger Berechtigungen gewährt werden als anderen. Dateien und Verzeichnisse mit solchen Berechtigungen lösen Warnungen aus, wenn die Registerkarte „Sicherheit“ des Eigenschaften-Dialogfelds geöffnet wird. Durch die Gewährung aller Berechtigungen, die anderen gewährt wurden, an die Gruppe lassen sich solche Warnungen vermeiden.

Hinweis: Mit Qt 6.10 wurde der Parameter „ permissions “ eingeführt. Um das alte Verhalten (unter Verwendung der plattformspezifischen Standardberechtigungen) von „ mkpath(const QString &) “ wiederherzustellen, setzen Sie „ permissions “ auf „ std::nullopt “ (Standard).

Siehe auch rmpath(), mkdir() und rmdir().

QStringList QDir::nameFilters() const

Gibt die mit setNameFilters() festgelegte Zeichenfolgenliste zurück

Siehe auch ` setNameFilters()`.

QString QDir::path() const

Gibt den Pfad zurück. Dieser kann symbolische Verknüpfungen enthalten, enthält jedoch niemals überflüssige „.“, „..“ oder mehrere Trennzeichen.

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)

Löscht die Datei „ fileName “.

Gibt „ true “ zurück, wenn die Datei erfolgreich entfernt wurde; andernfalls wird „ false “ zurückgegeben.

bool QDir::removeRecursively()

Löscht 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, setzt removeRecursively() den Vorgang fort und versucht, so viele Dateien und Unterverzeichnisse wie möglich zu löschen; anschließend gibt die Methode „ false “ zurück.

Wurde das Verzeichnis bereits entfernt, 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, nicht jedoch für für den Benutzer sichtbare Verzeichnisse. Bei für den Benutzer sichtbaren Vorgängen wird vielmehr empfohlen, Fehler dem Benutzer genauer zu melden, im Fehlerfall Lösungen anzubieten und 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 “ in „ newName “ um und gibt bei Erfolg „true“ zurück; andernfalls wird „ false “ zurückgegeben.

Auf den meisten Dateisystemen schlägt rename() nur dann fehl, wenn „ oldName “ nicht existiert oder wenn bereits eine Datei mit dem neuen Namen vorhanden ist. Es gibt jedoch auch andere Gründe, warum rename() fehlschlagen kann. Beispielsweise schlägt rename() auf mindestens einem Dateisystem fehl, wenn „ newName “ auf eine geöffnete Datei verweist.

Wenn oldName eine Datei (kein Verzeichnis) ist, die nicht sofort umbenannt werden kann, versucht Qt, oldName nach newName zu kopieren und oldName zu entfernen.

Siehe auch QFile::rename().

bool QDir::rmdir(const QString &dirName) const

Löscht das durch ` dirName` angegebene Verzeichnis.

Das Verzeichnis muss leer sein, damit rmdir() erfolgreich ausgeführt werden kann.

Gibt bei Erfolg true zurück; andernfalls wird false zurückgegeben.

Siehe auch mkdir().

bool QDir::rmpath(const QString &dirPath) const

Entfernt den Verzeichnispfad „ dirPath “.

Die Funktion entfernt alle übergeordneten Verzeichnisse in „ dirPath “, sofern diese 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 anhand des absoluten Pfads des Stammverzeichnisses erstellt, wodurch sichergestellt wird, dass die Funktion „ path()“ dasselbe Ergebnis liefert wie „ absolutePath()“.

Weitere Informationen finden Sie unter ` rootPath()`.

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 Verzeichnistrennzeichen zurück: „/“ unter Unix und „\“ unter Windows.

Sie müssen diese Funktion nicht zum Erstellen von Dateipfaden verwenden. Wenn Sie stets „/“ verwenden, passt Qt Ihre Pfade an das jeweilige Betriebssystem an. Wenn Sie dem Benutzer Pfade mit dem Trennzeichen seines Betriebssystems anzeigen möchten, 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 geändert wurde; andernfalls wird false zurückgegeben.

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)

Legt den von entryList() und entryInfoList() verwendeten Filter auf filters fest. Der Filter dient dazu, 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)

Legt die von entryList() und entryInfoList() verwendeten Namensfilter auf die Liste der Filter fest, die durch nameFilters angegeben sind.

Jeder Namensfilter ist ein Platzhalterfilter (Globbing-Filter), der die Platzhalter von * und ? versteht. Siehe QRegularExpression::fromWildcard().

Der folgende Code legt beispielsweise drei Namensfilter für einen „ QDir “ fest, um sicherzustellen, dass nur Dateien mit den für C++-Quelldateien typischerweise verwendeten Dateiendungen aufgelistet werden:

    QStringList filters;
    filters << "*.cpp" << "*.cxx" << "*.cc";
    dir.setNameFilters(filters);

Siehe auch nameFilters() und setFilter().

void QDir::setPath(const QString &path)

Legt den Pfad des Verzeichnisses auf „ path “ fest. Der Pfad wird von überflüssigen „.“, „..“ und mehrfachen Trennzeichen bereinigt. Es wird nicht geprüft, ob ein Verzeichnis mit diesem Pfad tatsächlich existiert; Sie können dies jedoch selbst mit der Funktion „ exists()“ überprüfen.

Der Pfad kann entweder absolut oder relativ sein. Absolute Pfade beginnen mit dem Verzeichnistrennzeichen „/“ (unter Windows optional mit einer Laufwerksangabe davor). 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 beispielsweise „src/fatlib“ lauten.

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)

Legt die Suchpfade von Qt für Dateinamen mit dem Präfix „ prefix “ fest oder ersetzt sie durch „ 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 darf nur Buchstaben oder Zahlen enthalten (z. B. darf es weder einen Doppelpunkt noch einen Schrägstrich enthalten).

Qt verwendet diesen Suchpfad, um Dateien mit einem bekannten Präfix zu finden. Die Einträge im Suchpfad werden der Reihe nach geprüft, 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 Dateinamenpräfix muss mindestens 2 Zeichen lang sein, um Konflikte mit Windows-Laufwerksbuchstaben zu vermeiden.

Suchpfade können Pfade zum Qt-Ressourcensystem enthalten.

Siehe auch searchPaths().

void QDir::setSorting(QDir::SortFlags sort)

Legt die Sortierreihenfolge fest, die von den Funktionen ` entryList()` und ` entryInfoList()` verwendet wird.

Die Sortierreihenfolge ` sort ` wird durch ein OR-Verknüpfung der Werte aus der Enumeration ` QDir::SortFlag` festgelegt.

Siehe auch sorting() und SortFlag.

QDir::SortFlags QDir::sorting() const

Gibt den durch setSorting() festgelegten Wert zurück

Siehe auch setSorting() und SortFlag.

[noexcept] void QDir::swap(QDir &other)

Ersetzt diese Instanz von QDir durch other. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.

[static] QDir QDir::temp()

Gibt das temporäre Verzeichnis des Systems zurück.

Das Verzeichnis wird unter Verwendung des absoluten kanonischen Pfads des temporären Verzeichnisses gebildet, wodurch sichergestellt wird, dass dessen ` path()` mit dessen ` absolutePath()` übereinstimmt.

Weitere Informationen finden Sie unter ` tempPath()`.

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 “, falls „ TMPDIR “ nicht definiert ist. Unter Windows ist dies in der Regel der Pfad in der Umgebungsvariablen „ TEMP “ oder „ TMP “. Der von dieser Methode zurückgegebene Pfad endet nicht mit einem Verzeichnistrennzeichen, 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 jeweilige Betriebssystem geeignet sind.

Unter Windows gibt toNativeSeparators("c:/winnt/system32") „c:\winnt\system32 “ zurück.

Die zurückgegebene Zeichenfolge kann auf einigen Betriebssystemen, beispielsweise unter Unix, mit dem Argument übereinstimmen.

Siehe auch fromNativeSeparators() und separator().

[noexcept] QDir &QDir::operator=(QDir &&other)

Weist „ other “ dieser „ QDir “-Instanz zu.

QDir &QDir::operator=(const QDir &dir)

Erstellt eine Kopie des Objekts „ dir “ und weist 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. Entspricht „ 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 “ und kein „ qsizetype “.

Siehe auch „ count()“ und „ entryList()“.

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 aufweisen; 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 „directory lhs “ und „directory rhs “ denselben Pfad haben und ihre Sortier- und Filtereinstellungen identisch sind; andernfalls wird „ false “ zurückgegeben.

Beispiel:

// Das aktuelle Verzeichnis ist „/usr/local“
QDir d1("/usr/local/bin");
QDir d2("bin");
if (d1== d2)
    qDebug("They're the same");

© 2026 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.