このページでは

QDir Class

QDir クラスは、ディレクトリ構造とその内容へのアクセスを提供します。詳細...

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

注:このクラスのすべての関数は再入可能です。

QDir の比較

カテゴリ比較可能な型
等価性QDir

公開型

enum Filter { Dirs, AllDirs, Files, Drives, NoSymLinks, …, CaseSensitive }
flags Filters
enum SortFlag { Name, Time, Size, Type, Unsorted, …, LocaleAware }
flags SortFlags

パブリック関数

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

静的パブリックメンバー

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)

詳細説明

QDirは、パス名の操作、パスやファイルに関する情報の取得、および基盤となるファイルシステムの操作に使用されます。また、Qtのリソースシステムへのアクセスにも使用できます。

Qt では、URL でパス区切り文字として「/」が使用されるのと同様に、「/」を汎用的なディレクトリ区切り文字として使用します。常に「/」をディレクトリ区切り文字として使用すれば、Qt はパスを基になるオペレーティングシステムに準拠するように変換します。

QDir は、相対パスまたは絶対パスのいずれかを使用してファイルを指定できます。絶対パスは、ディレクトリ区切り文字で始まります(Windows では、その前にドライブ指定がオプションで付く場合があります)。相対ファイル名は、ディレクトリ名またはファイル名で始まり、カレントディレクトリを基準とした相対パスを指定します。

絶対パスの例:

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

Windows では、上記の 2 番目の例は、ファイルへのアクセスに使用される際、C:\Users に変換されます。

相対パスの例:

QDir("images/landscape.png");

isRelative() またはisAbsolute() 関数を使用すると、QDir が相対ファイルパスを使用しているか、絶対ファイルパスを使用しているかを確認できます。相対の QDir を絶対の QDir に変換するには、makeAbsolute() を呼び出します。

注: コロン (:) で始まるパスは 、QResource を表すため、常に絶対パスとみなされます。

ディレクトリのパスは `path()` 関数で取得でき、新しいパスは `setPath()` 関数で設定できます。ディレクトリへの絶対パスは、`absolutePath()` を呼び出すことで取得できます。

ディレクトリ名は、dirName() 関数を使用して取得できます。通常、この関数は、ディレクトリの位置を指定する絶対パスの最後の要素を返します。ただし、QDir がカレントディレクトリを表している場合は、「.」を返すこともあります。

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

ディレクトリのパスは、cd() およびcdUp() 関数を使用して変更することも可能です。これらはいずれも、馴染みのあるシェルコマンドと同様に動作します。cd() を既存のディレクトリ名とともに呼び出すと、QDir オブジェクトはディレクトリを切り替え、そのディレクトリを指すようになります。cdUp() 関数は、QDir オブジェクトのディレクトリを変更し、その親ディレクトリを参照するようにします。つまり、cd("..") はcdUp() と同等です。

ディレクトリの作成にはmkdir()、名前の変更にはrename()、削除にはrmdir()を使用できます。

exists() を使用すると、指定された名前のディレクトリが存在するかどうかを確認でき、isReadable(),isAbsolute(),isRelative(),isRoot() を使用すると、ディレクトリの属性を確認できます。

refresh() 関数は、ディスクからディレクトリのデータを再読み込みします。

ファイルとディレクトリの内容

ディレクトリには、ファイル、ディレクトリ、およびシンボリックリンクを表す多数のエントリが含まれています。ディレクトリ内のエントリ数は、count() によって返されます。ディレクトリ内のすべてのエントリの名前からなる文字列リストは、entryList() を使用して取得できます。各エントリに関する情報が必要な場合は、entryInfoList() を使用して、QFileInfo オブジェクトのリストを取得してください。

ディレクトリ内のファイルやディレクトリへのパスは、filePath() およびabsoluteFilePath() を使用して構築できます。filePath() 関数は、QDir オブジェクトのパスを基準とした、指定されたファイルまたはディレクトリへの相対パスを返します。absoluteFilePath() は、指定されたファイルまたはディレクトリへの絶対パスを返します。これらの関数のいずれも、ファイルやディレクトリの存在を確認することはなく、パスを構築するだけです。

QDir directory("Documents/Letters");
QString path = directory.filePath("contents.txt");
QString absolutePath = directory.absoluteFilePath("contents.txt");

ファイルは、remove() 関数を使用して削除できます。ディレクトリはファイルと同じ方法では削除できません。代わりに、rmdir() を使用して削除してください。

QDir オブジェクトにフィルタを適用することで、entryList() およびentryInfoList() が返すエントリの数を減らすことができます。名前フィルタを適用して、ファイル名が一致する必要があるワイルドカードを含むパターンを指定したり、エントリのプロパティを選択し、ファイルとディレクトリを区別できる属性フィルタを適用したり、並べ替え順序を指定したりすることができます。

名前フィルターは、setNameFilters() に渡される文字列のリストです。属性フィルターは、Filters のビット単位の OR 結合で構成され、setFilter() を呼び出す際に指定します。並べ替え順序は、setSorting() を使用して、SortFlags のビット単位の OR 結合で指定します。

match() 関数を使用すると、ファイル名がフィルタに一致するかどうかをテストできます。

entryList() およびentryInfoList() を呼び出す際、以前に定義された動作を上書きするために、フィルタおよびソート順序のフラグを指定することもできます。

現在のディレクトリおよびその他の特別なパス

いくつかの一般的なディレクトリへのアクセスは、QDir オブジェクトを返す多数の静的関数によって提供されます。これらに対応して、文字列を返す関数も用意されています:

QDirQString戻り値
current()currentPath()アプリケーションの作業ディレクトリ
home()homePath()ユーザーのホームディレクトリ
root()rootPath()ルートディレクトリ
temp()tempPath()システムの一時ディレクトリ

静的関数 `setCurrent()` を使用して、アプリケーションの作業ディレクトリを設定することもできます。

アプリケーションの実行ファイルが含まれているディレクトリを特定したい場合は、QCoreApplication::applicationDirPath() を参照してください。

静的関数drives() は、ファイルシステムを含む各デバイスのルートディレクトリのリストを提供します。Unix システムでは、これは単一のルートディレクトリ「/」を含むリストを返します。Windows では、リストには通常C:/ が含まれ、ユーザーのシステム構成によってはD:/ などの他のドライブ文字が含まれる場合もあります。

パスの操作と文字列

パスに含まれる「.」要素(パスのその位置におけるカレントディレクトリを指す)、「..」要素(親ディレクトリを指す)、およびシンボリックリンクは、canonicalPath() 関数を使用して正規形に還元することができます。

また、cleanPath() 関数を使用して、冗長な「/」や「..」要素を削除することで、パスを簡略化することもできます。

ユーザーのプラットフォームに合わせたネイティブな形式でパスを表示できる必要がある場合があります。静的関数toNativeSeparators()は、指定されたパスのコピーを返します。このコピーでは、各ディレクトリ区切り文字が、基盤となるオペレーティングシステムに適した区切り文字に置き換えられています。

例

ディレクトリが存在するかどうかを確認する:

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

(また、静的な便利関数であるQFileInfo::exists() やQFile::exists() のいずれかを使用することもできます。)

ディレクトリを順巡し、ファイルを読み込む:

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()));
}

現在のディレクトリにあるすべてのファイル(シンボリックリンクを除く)を、サイズ順(小さいものから順に)に一覧表示するプログラム:

#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;
}

プラットフォーム固有の問題

Androidでは、コンテンツURIを扱う際にいくつかの制限があります:

QFileInfo 、QFile 、QFileDialog 、QCoreApplication::applicationDirPath()、および「Fetch More」のサンプルも参照してください 。

メンバ型のドキュメント

enum QDir::Filter
flags QDir::Filters

この列挙型は、QDir で利用可能なフィルタリングオプションを表します。例えば、entryList() やentryInfoList() などで使用されます。フィルタの値は、以下のリストにある値をビット単位の OR 演算子を用いて組み合わせることで指定されます。

定数値説明
QDir::Dirs0x001フィルタに一致するディレクトリを一覧表示します。
QDir::AllDirs0x400すべてのディレクトリを一覧表示します。つまり、ディレクトリ名に対してフィルタを適用しません。
QDir::Files0x002ファイルを一覧表示します。
QDir::Drives0x004ディスクドライブを一覧表示します(Unix では無視されます)。
QDir::NoSymLinks0x008シンボリックリンクを一覧表示しない(シンボリックリンクをサポートしていないオペレーティングシステムでは無視されます)。
QDir::NoDotAndDotDotNoDot | NoDotDot特殊エントリ「.」および「..」は一覧に含めない。
QDir::NoDot0x2000特殊エントリ「.」は一覧に含めない。
QDir::NoDotDot0x4000特殊エントリ「..」を一覧表示しない。
QDir::AllEntriesDirs | Files | Drivesディレクトリ、ファイル、ドライブ、およびシンボリックリンクを一覧表示します(System を指定しない限り、壊れたシンボリックリンクは一覧表示されません)。
QDir::Readable0x010アプリケーションが読み取りアクセス権を持つファイルを一覧表示します。「Readable」の値は、「Dirs」または「Files」と組み合わせて使用する必要があります。
QDir::Writable0x020アプリケーションが書き込みアクセス権を持つファイルを一覧表示します。「Writable」の値は、「Dirs」または「Files」と組み合わせて使用する必要があります。
QDir::Executable0x040アプリケーションが実行アクセス権を持つファイルを一覧表示します。「Executable」の値は、「Dirs」または「Files」と組み合わせて使用する必要があります。
QDir::Hidden0x100隠しファイル(Unix では「.」で始まるファイル)を一覧表示します。
QDir::System0x200システムファイルを一覧表示します(Unix では、FIFO、ソケット、デバイスファイルが含まれます。Windows では、.lnk ファイルが含まれます)。
QDir::CaseSensitive0x800フィルタは大文字と小文字を区別する必要があります。

Filter 列挙型の値を使用してファイルおよびディレクトリのリストをフィルタリングする関数は、NoSymLinks 値を設定しない限り、ファイルやディレクトリへのシンボリックリンクを含めます。

デフォルトで構築された `QDir ` は、ファイルの権限に基づいてファイルをフィルタリングしないため、entryList() およびentryInfoList() は、読み取り可能、書き込み可能、実行可能、あるいはこれら 3 つの組み合わせのいずれかに該当するすべてのファイルを返します。これにより、デフォルトの記述が簡単になり、同時に有用なものとなります。

たとえば、Readable 、Writable 、およびFiles フラグを設定することで、アプリケーションが読み取りアクセス、書き込みアクセス、またはその両方のアクセス権を持つすべてのファイルを一覧表示できます。この組み合わせにDirs およびDrives フラグも追加すれば、すべてのドライブ、ディレクトリ、アプリケーションが読み取り、書き込み、または実行可能なすべてのファイル、およびそれらのファイルやディレクトリへのシンボリックリンクを一覧表示できます。

ディレクトリの権限を取得するには、entryInfoList() 関数を使用して関連するQFileInfo オブジェクトを取得し、その後QFileInfo::permissions() を使用して各ファイルの権限と所有権を取得します。

Filters型は、QFlags<Filter>のtypedefです。これは、Filter値の論理和(OR)の組み合わせを格納します。

enum QDir::SortFlag
flags QDir::SortFlags

この列挙型は、QDir で利用可能なソートオプションを表します。例えば、entryList() やentryInfoList() などで使用されます。ソート値は、以下のリストにある値を論理和(OR)で組み合わせることで指定されます。

定数値説明
QDir::Name0x00名前順でソートします。
QDir::Time0x01日時(最終更新日時)順に並べ替えます。
QDir::Size0x02ファイルサイズ順に並べ替え。
QDir::Type0x80ファイルの種類(拡張子)順に並べ替える。
QDir::Unsorted0x03並べ替えなし。
QDir::NoSort-1デフォルトではソートされません。
QDir::DirsFirst0x04ディレクトリを先に、その後にファイルを並べます。
QDir::DirsLast0x20ファイルを先に、その後にディレクトリを表示します。
QDir::Reversed0x08ソート順を逆にする。
QDir::IgnoreCase0x10大文字と小文字を区別せずに並べ替えます。
QDir::LocaleAware0x40現在のロケール設定に従って項目を適切にソートします。

最初の 4 つのうち 1 つだけを指定できます。

DirsFirst と Reversed の両方を指定した場合、ディレクトリは依然として先頭に配置されますが、逆順になります。ファイルはディレクトリの後に、これも逆順でリストされます。

SortFlags 型は、QFlags<SortFlag> の typedef です。これは、SortFlag 値の OR 結合を格納します。

メンバ関数のドキュメント

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

指定されたディレクトリ `path` を指す QDir を作成します。`path` が空の場合、プログラムの作業ディレクトリ(「.」)が使用されます。

currentPath()も参照してください 。

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

指定されたディレクトリ `path` を指す QDir を生成します。`path` が空の場合、プログラムの作業ディレクトリ(「.」)が使用されます。

この関数は Qt 6.0 で導入されました。

currentPath()も参照してください 。

QDir::QDir(const QString &path, const QString &nameFilter, QDir::SortFlags sort = SortFlags(Name | IgnoreCase), QDir::Filters filters = AllEntries)

パス `path` を持つ QDir を構築し、nameFilter を使用して名前で、filters を使用して属性でエントリをフィルタリングします。また、sort を使用して名前をソートします。

デフォルトの `nameFilter ` は空文字列であり、何も除外しません。デフォルトの `filters ` は `AllEntries` であり、これも何も除外しません。デフォルトの `sort ` は `Name |IgnoreCase` であり、つまり大文字小文字を区別せずに名前順に並べ替えます。

path が空文字列の場合、QDir は "."(現在のディレクトリ)を使用します。nameFilter が空文字列の場合、QDir は名前フィルター "*"(すべてのファイル)を使用します。

注: path は 存在する必要はありません。

関連項目: exists()、setPath()、setNameFilters()、setFilter()、およびsetSorting()。

[since 6.0] QDir::QDir(const std::filesystem::path &path, const QString &nameFilter, QDir::SortFlags sort = SortFlags(Name | IgnoreCase), QDir::Filters filters = AllEntries)

パス `path` を持つ QDir を構築し、nameFilter を使用して名前で、filters を使用して属性でエントリをフィルタリングします。また、sort を使用して名前をソートします。

デフォルトの `nameFilter ` は空文字列であり、何も除外しません。デフォルトの `filters ` は `AllEntries` であり、これも何も除外しません。デフォルトの `sort ` は `Name |IgnoreCase` であり、つまり大文字小文字を区別せずに名前順に並べ替えます。

path が空の場合、QDirは「.」(現在のディレクトリ)を使用します。nameFilter が空の文字列の場合、QDirは名前フィルター「*」(すべてのファイル)を使用します。

注: path は存在する必要はありません。

この関数は Qt 6.0 で導入されました。

関連項目: exists()、setPath()、setNameFilters()、setFilter()、setSorting()も参照してください 。

QDir::QDir(const QDir &dir)

ディレクトリ `dir` に対応する QDir オブジェクトのコピーとなる QDir オブジェクトを生成します。

operator=()も参照してください 。

[noexcept] QDir::~QDir()

QDir オブジェクトを破棄し、そのリソースを解放します。これは、ファイルシステム上の基になるディレクトリには影響しません。

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

ディレクトリ内のファイルの絶対パス名を返します。ファイルが実際にディレクトリに存在するかどうかは確認しません。ただし、exists() を参照してください。fileName 内の余分な区切り文字や「.」および「..」ディレクトリは削除されません(cleanPath() を参照してください)。

relativeFilePath()、filePath()、およびcanonicalPath()も参照してください 。

QString QDir::absolutePath() const

シンボリックリンクを含む場合があるが、余分な「.」、「..」、または複数の区切り文字は決して含まない絶対パス(「/」またはドライブ指定で始まるパス)を返します。

setPath()、canonicalPath()、exists()、cleanPath()、dirName()、およびabsoluteFilePath()も参照してください 。

[static] void QDir::addSearchPath(const QString &prefix, const QString &path)

prefix の検索パスにpath を追加します。

setSearchPaths()も参照してください 。

[static, since 6.0] void QDir::addSearchPath(const QString &prefix, const std::filesystem::path &path)

これはオーバーロードされた関数です。

この関数は Qt 6.0 で導入されました。

QString QDir::canonicalPath() const

正規パス、すなわちシンボリックリンクや余分な「.」や「..」を含まないパスを返します。

シンボリックリンクが存在しないシステムでは、この関数は常にabsolutePath()が返すのと同じ文字列を返します。 このメソッドは、エントリが存在しない場合、到達できない場合(例えば、現在のユーザーがディレクトリパスへのアクセス権を持っていない場合)、またはパスの正規化中にエラーが発生した場合(通常はダングリングシンボリックリンクが原因)、空の文字列を返します。

例:

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".

関連項目: path(),absolutePath(),exists(),cleanPath(),dirName(),absoluteFilePath().

bool QDir::cd(const QString &dirName)

QDir のディレクトリをdirName に変更します。

新しいディレクトリが存在する場合は `true ` を返し、存在しない場合は `false` を返します。なお、新しいディレクトリが存在しない場合、論理的な `cd()` 操作は実行されません。

cd("..") を呼び出すことは、cdUp() を呼び出すことと同等です。

cdUp()、isReadable()、exists()、およびpath()も参照してください 。

bool QDir::cdUp()

QDir の現在のディレクトリから1つ上のディレクトリに移動します。

新しいディレクトリが存在する場合、true を返します。存在しない場合はfalse を返します。なお、新しいディレクトリが存在しない場合、cdUp()の論理的な操作は実行されません。

注: Androidでは 、コンテンツ URI に対してこの機能はサポートされていません。詳細については、DocumentFile.getParentFile() を参照してください。

関連項目: cd()、isReadable()、exists()、およびpath()。

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

ディレクトリ区切り文字を正規化(つまり、プラットフォーム固有の区切り文字を「/」に変換)し、余分な区切り文字を削除し、「.」や「..」を(可能な限り)解決したpath を返します。

シンボリックリンクは保持されます。この関数は正規化されたパスを返すのではなく、入力に対する最も単純な形式のパスを返します。 たとえば、「./local」は「local」に、「local/../bin」は「bin」に、「/local/usr/../bin」は「/local/bin」になります。

absolutePath() およびcanonicalPath()も参照してください 。

qsizetype QDir::count() const

そのディレクトリ内のディレクトリとファイルの総数を返します。

entryList().count() と同等です。

注: Qt 6.5以前のバージョンでは 、この関数は `qsizetype` ではなく `uint` を返していました。

operator[]() およびentryList()も参照してください 。

[static] QDir QDir::current()

アプリケーションの現在のディレクトリを返します。

ディレクトリは現在のディレクトリの絶対パスを使用して構築されるため、path() の結果とabsolutePath() の結果が一致することが保証されます。

currentPath()、setCurrent()、home()、root()、およびtemp()も参照してください 。

[static] QString QDir::currentPath()

アプリケーションの現在のディレクトリの絶対パスを返します。現在のディレクトリとは、QDir::setCurrent() で最後に設定されたディレクトリ、あるいは、その関数が一度も呼び出されていない場合は、親プロセスによってこのアプリケーションが起動された際のディレクトリを指します。

関連項目: current()、setCurrent()、homePath()、rootPath()、tempPath()、およびQCoreApplication::applicationDirPath()。

QString QDir::dirName() const

ディレクトリの名前を返します。これはパスとは異なります。たとえば、名前が「mail」のディレクトリのパスは「/var/spool/mail」となる場合があります。ディレクトリに名前がない場合(ルートディレクトリなど)、空の文字列が返されます。

この名前のディレクトリが実際に存在するかどうかは確認されません。ただし、exists() を参照してください。

path()、filePath()、absolutePath()、およびabsoluteFilePath()も参照してください 。

[static] QFileInfoList QDir::drives()

このシステム上のルートディレクトリのリストを返します。

Windows では、「C:/」、「D:/」などを含む `QFileInfo ` オブジェクトのリストが返されます。この関数は、取り外し可能なメディアが挿入されている空のドライブは返しません。その他のオペレーティングシステムでは、1 つのルートディレクトリ(つまり「/」)のみを含むリストが返されます。

root() およびrootPath()も参照してください 。

QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const

ディレクトリ内のすべてのファイルおよびディレクトリに対するQFileInfo オブジェクトのリストを返します。このリストは、setNameFilters()およびsetFilter()で事前に設定された名前および属性フィルターに従って並べ替えられ、setSorting()で設定されたフラグに従ってソートされます。

名前フィルタ、ファイル属性フィルタ、およびソート指定は、nameFilters 、filters 、およびsort 引数を使用して上書きできます。

ディレクトリが読み取り不可の場合、存在しない場合、または仕様に一致するものが何もない場合は、空のリストを返します。

ディレクトリが大きい場合、この関数はディレクトリ内のエントリごとにQFileInfo のインスタンスを作成するため、メモリ使用量が急増する可能性があります。項目を 1 つずつ反復処理することが目的の場合は、QDirListing の使用を検討してください。

entryList()、setNameFilters()、setSorting()、setFilter()、isReadable()、およびexists()も参照してください 。

QFileInfoList QDir::entryInfoList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const

ディレクトリ内のすべてのファイルおよびディレクトリに対するQFileInfo オブジェクトのリストを返します。このリストは、setNameFilters()およびsetFilter()で事前に設定された名前および属性のフィルタに従って並べ替えられ、setSorting()で設定されたフラグに基づいてソートされます。

属性フィルタおよびソート指定は、filters およびsort 引数を使用して上書きできます。

ディレクトリが読み取り不可の場合、存在しない場合、または仕様に一致する項目がない場合は、空のリストを返します。

大規模なディレクトリの場合、この関数はディレクトリ内の各エントリごとにQFileInfo のインスタンスを作成するため、メモリ使用量が急増する可能性があります。項目を 1 つずつ反復処理することが目的の場合は、QDirListing の使用を検討してください。

これはオーバーロードされた関数です。

entryList()、setNameFilters()、setSorting()、setFilter()、isReadable()、およびexists()も参照してください 。

QStringList QDir::entryList(const QStringList &nameFilters, QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const

そのディレクトリ内にあるすべてのファイルおよびディレクトリの名前の一覧を返します。この一覧は、setNameFilters() およびsetFilter() で以前に設定された名前および属性フィルターに従って並べ替えられ、setSorting() で設定されたフラグに基づいてソートされます。

名前フィルター、ファイル属性フィルター、およびソート指定は、nameFilters 、filters 、およびsort の引数を使用して上書きできます。

ディレクトリが読み取り不可能である場合、存在しない場合、または指定に一致するものが何もない場合は、空のリストを返します。

ディレクトリが大きい場合、この関数はディレクトリ内のエントリごとにQString のインスタンスを作成するため、メモリ使用量が急増する可能性があります。項目を 1 つずつ反復処理することが目的の場合は、QDirListing の使用を検討してください。

entryInfoList()、setNameFilters()、setSorting()、およびsetFilter()も参照してください 。

QStringList QDir::entryList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const

そのディレクトリ内のすべてのファイルおよびディレクトリの名前の一覧を返します。この一覧は、setNameFilters() およびsetFilter() で事前に設定された名前および属性のフィルタに従って並べ替えられ、setSorting() で設定されたフラグに基づいてソートされます。

属性フィルタおよびソート指定は、filters およびsort 引数を使用して上書きすることができます。

ディレクトリが読み取り不可の場合、存在しない場合、または仕様に一致するものが何もない場合は、空のリストを返します。

注: 存在しないファイルを指すシンボリックリンクを一覧表示するには 、System を filter に渡す必要があります。

ディレクトリが大きい場合、この関数はディレクトリ内の各エントリごとに `QString ` のインスタンスを作成するため、メモリ使用量が急増する可能性があります。項目を1つずつ反復処理することが目的の場合は、`QDirListing ` の使用を検討してください。

これはオーバーロードされた関数です。

entryInfoList()、setNameFilters()、setSorting()、およびsetFilter()も参照してください 。

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

name という名前のファイルが存在する場合、true を返します。存在しない場合は false を返します。

name に絶対ファイルパスが含まれていない限り、ファイル名はディレクトリ自体を基準とした相対パスとみなされるため、この関数は通常、ディレクトリ内のファイルの存在を確認するために使用されます。

QFileInfo::exists() およびQFile::exists()も参照してください 。

bool QDir::exists() const

ディレクトリが存在する場合は `true ` を返し、存在しない場合は `false` を返します。(同名のファイルが見つかった場合、この関数は `false` を返します)。

引数を受け取るこの関数のオーバーロードは、ディレクトリ内のファイルやディレクトリの存在を確認するために使用されます。

これはオーバーロードされた関数です。

QFileInfo::exists() およびQFile::exists()も参照してください 。

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

ディレクトリ内のファイルのパス名を返します。ファイルが実際にディレクトリに存在するかどうかは確認しません。ただし、exists() を参照してください。QDir が相対パスである場合、返されるパス名も相対パスになります。fileName に含まれる余分な区切り文字や「.」、「..」ディレクトリは削除されません(cleanPath() を参照)。

dirName()、absoluteFilePath()、isRelative()、およびcanonicalPath()も参照してください 。

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

absolutePath() をstd::filesystem::path として返します。

この関数は Qt 6.0 で導入されました。

absolutePath()も参照してください 。

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

canonicalPath() をstd::filesystem::path として返します。

この関数は Qt 6.0 で導入されました。

canonicalPath()も参照してください 。

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

path() をstd::filesystem::path として返します。

この関数は Qt 6.0 で導入されました。

path()も参照してください 。

QDir::Filters QDir::filter() const

setFilter() で設定された値を返します

setFilter()も参照してください 。

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

ファイル区切り文字として「/」を使用して、pathName を返します。たとえば、Windows では、fromNativeSeparators("c:\\winnt\\system32") は "c:/winnt/system32" を返します。

Unix など一部のオペレーティングシステムでは、返される文字列が引数と同じになる場合があります。

toNativeSeparators() およびseparator()も参照してください 。

[static] QDir QDir::home()

ユーザーのホームディレクトリを返します。

ディレクトリはホームディレクトリの絶対パスを使用して構築されるため、path() の結果とabsolutePath() の結果が同じになることが保証されます。

詳細については、homePath()を参照してください。

drives()、current()、root()、およびtemp()も参照してください 。

[static] QString QDir::homePath()

ユーザーのホームディレクトリの絶対パスを返します。

Windows では、この関数は現在のユーザーのプロファイルディレクトリを返します。通常、これは次のようになります:

C:/Users/Username

toNativeSeparators() 関数を使用して、区切り文字を基盤となるオペレーティングシステムに適した形式に変換してください。

現在のユーザーのプロファイルディレクトリが存在しないか、取得できない場合、既存の利用可能なパスが見つかるまで、以下の代替案が(指定された順序で)チェックされます:

  1. USERPROFILE 環境変数で指定されたパス。
  2. HOMEDRIVE およびHOMEPATH 環境変数を連結して形成されたパス。
  3. HOME 環境変数で指定されたパス。
  4. rootPath() 関数(SystemDrive 環境変数を使用)によって返されるパス
  5. C:/ ディレクトリ。

Windows 以外のオペレーティングシステムでは、HOME 環境変数が存在する場合、それが使用されます。存在しない場合は、rootPath() 関数が返すパスが使用されます。

関連項目: home()、currentPath()、rootPath()、およびtempPath()。

bool QDir::isAbsolute() const

ディレクトリのパスが絶対パスである場合は `true ` を返し、そうでない場合は `false` を返します。isAbsolutePath() を参照してください。

注: コロン (:) で始まるパスは 、QResource を表すため、常に絶対パスとみなされます。

isRelative()、makeAbsolute()、およびcleanPath()も参照してください 。

[static] bool QDir::isAbsolutePath(const QString &path)

path が絶対パスである場合はtrue を返し、相対パスである場合はfalse を返します。

注: コロン (:) で始まるパスは 、QResource を示すため、常に絶対パスとみなされます。

関連項目: isAbsolute()、isRelativePath()、makeAbsolute()、cleanPath()、およびQResource 。

bool QDir::isEmpty(QDir::Filters filters = Filters(AllEntries | NoDotAndDotDot)) const

ディレクトリが空であるかどうかを返します。

count() == 0 にQDir::AllEntries | QDir::NoDotAndDotDot のフィルタを指定したものと同等ですが、ディレクトリに少なくとも1つのエントリが含まれているかのみを確認するため、処理が高速です。

注: filters のフラグにQDir::NoDotAndDotDot を含める設定(デフォルト値では含まれています)を行わない限り 、空のディレクトリは存在しません。

count()、entryList()、およびsetFilter()も参照してください 。

bool QDir::isReadable() const

ディレクトリが読み取り可能であり、ファイル名を指定してファイルを開くことができる場合は `true ` を返し、そうでない場合は `false` を返します。

警告: この関数が偽の値を 返したとしても、そのディレクトリ内のファイルにアクセスできないとは限りません。

QFileInfo::isReadable()も参照してください 。

bool QDir::isRelative() const

ディレクトリパスが相対パスの場合は `true ` を返し、そうでない場合は `false` を返します(Unix では、パスが「/」で始まらない場合、そのパスは相対パスとみなされます)。

注: コロン (:) で始まるパスは 、QResource を表すため、常に絶対パスとみなされます。

関連項目: makeAbsolute()、isAbsolute()、isAbsolutePath()、およびcleanPath()。

[static] bool QDir::isRelativePath(const QString &path)

path が相対パスである場合はtrue を返し、絶対パスである場合はfalse を返します。

注: コロン (:) で始まるパスは 、QResource を示すため、常に絶対パスとみなされます。

関連項目: isRelative()、isAbsolutePath()、およびmakeAbsolute()。

bool QDir::isRoot() const

ディレクトリがルートディレクトリの場合は `true ` を返し、それ以外の場合は `false` を返します。

注: ディレクトリがルートディレクトリへのシンボリックリンクである場合 、この関数は `false` を返します。これを判定したい場合は、`canonicalPath()` を使用してください。例:

QDir dir("/tmp/root_link");
dir=dir.canonicalPath();
if(dir.isRoot())
    qWarning("It is a root link");

root() およびrootPath()も参照してください 。

[static constexpr noexcept] QChar QDir::listSeparator()

ネイティブのパス区切り文字を返します。Unix では ':'、Windows では ';' です。

separator()も参照してください 。

bool QDir::makeAbsolute()

ディレクトリパスを絶対パスに変換します。すでに絶対パスの場合は何も行われません。変換に成功した場合は `true ` を返し、失敗した場合は `false` を返します。

isAbsolute()、isAbsolutePath()、isRelative()、およびcleanPath()も参照してください 。

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

fileName がワイルドカード(グロブ)パターンfilter と一致する場合はtrue を返し、一致しない場合はfalse を返します。filter には、スペースまたはセミコロンで区切られた複数のパターンを含めることができます。一致の判定は、大文字と小文字を区別しません。

QRegularExpression::fromWildcard()、entryList()、およびentryInfoList()も参照してください 。

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

fileName が、filters のリストに含まれるワイルドカード(グロブ)パターンのいずれかと一致する場合、true を返します。一致しない場合は、false を返します。一致の判定では大文字と小文字は区別されません。

これはオーバーロードされた関数です。

QRegularExpression::fromWildcard()、entryList()、およびentryInfoList()も参照してください 。

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

指定されたpermissions を使用して、dirName という名前のサブディレクトリを作成します。

permissions がstd::nullopt (デフォルト)の場合、この関数はデフォルトの権限を設定します。

成功した場合はtrue を返し、操作が失敗した場合、またはdirName がすでに存在していた場合はfalse を返します。

dirName がすでに存在する場合、このメソッドはその権限を変更しません。

POSIX システムでは、permissions は現在のプロセスの umask (ファイル作成マスク) によって変更されるため、一部の権限ビットが無効になる可能性があります。

Windows では、デフォルトで、新しいディレクトリはその親ディレクトリからアクセス権を継承します。permissions は ACL を使用してエミュレートされます。グループに他のユーザーよりも少ないアクセス権が与えられている場合、これらの ACL は非標準の順序になることがあります。 このような権限を持つファイルやディレクトリは、「プロパティ」ダイアログの「セキュリティ」タブを開いた際に警告が表示されます。他のユーザーに付与されているすべての権限をグループにも付与することで、このような警告を回避できます。

注: Qt 6.10 では、permissions パラメータが追加されました。mkdir(const QString &) の従来の挙動(プラットフォーム固有のデフォルト権限を使用)を得るには、permissions をstd::nullopt (デフォルト)に設定してください。この新しいメソッドは、mkdir(const QString &, QFile::Permissions) のオーバーロードも透過的に置き換えます。

rmdir()、mkpath()、およびrmpath()も参照してください 。

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

「dirPath 」という名前のディレクトリを作成します。

dirPath がまだ存在しない場合、このメソッドは、permissions を使用して、 および存在しない親ディレクトリをすべて作成します。

dirPath がすでに存在する場合、このメソッドはその権限を変更しません。すでに存在する親ディレクトリについても同様です。

permissions がstd::nullopt (デフォルト値)の場合、この関数はデフォルトの権限を設定します。

成功した場合、またはdirPath がすでに存在していた場合はtrue を返します。それ以外の場合はfalse を返します。

POSIX システムでは、permissions は現在のプロセスの umask (ファイル作成マスク)によって変更されるため、一部の権限ビットが無効になる可能性があります。

Windows では、デフォルトで、新しいディレクトリはその親ディレクトリから権限を継承します。permissions は ACL を使用してエミュレートされます。グループに他のグループよりも少ない権限が与えられている場合、これらの ACL は非標準の順序になることがあります。 このような権限を持つファイルやディレクトリは、「プロパティ」ダイアログの「セキュリティ」タブを開いた際に警告が表示されます。グループに「その他」に付与されているすべての権限を付与することで、このような警告を回避できます。

注:Qt 6.10 で `permissions ` パラメータが追加されました。mkpath(const QString &) の従来の動作(プラットフォーム固有のデフォルト権限を使用)を再現するには、`permissions ` を `std::nullopt `(デフォルト)に設定してください。

rmpath()、mkdir()、およびrmdir()も参照してください 。

QStringList QDir::nameFilters() const

setNameFilters() で設定された文字列リストを返します。

setNameFilters()も参照してください 。

QString QDir::path() const

パスを返します。このパスにはシンボリックリンクが含まれる場合がありますが、余分な「.」、「..」、または複数の区切り文字が含まれることはありません。

返されるパスは、絶対パスまたは相対パスのいずれかになります(setPath() を参照)。

setPath()、absolutePath()、exists()、cleanPath()、dirName()、absoluteFilePath()、toNativeSeparators()、およびmakeAbsolute()も参照してください 。

void QDir::refresh() const

ディレクトリ情報を更新します。

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

ディレクトリを基準とした、fileName へのパスを返します。

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"

absoluteFilePath()、filePath()、canonicalPath()も参照してください 。

bool QDir::remove(const QString &fileName)

ファイル「fileName 」を削除します。

ファイルが正常に削除された場合は `true ` を返し、そうでない場合は `false` を返します。

bool QDir::removeRecursively()

ディレクトリとその中身をすべて削除します。

成功した場合はtrue を返し、失敗した場合はfalseを返します。

ファイルやディレクトリを削除できない場合、removeRecursively() は処理を継続し、可能な限り多くのファイルとサブディレクトリを削除しようと試みた後、false を返します。

ディレクトリがすでに削除されている場合、このメソッドは `true ` を返します(期待される結果がすでに達成されているため)。

注:この関数は 、アプリケーション内部の小さなディレクトリ(一時ディレクトリなど)を削除することを目的としており、ユーザーが閲覧可能なディレクトリを削除するためのものではありません。ユーザーが閲覧可能なディレクトリに対する操作については、エラーをユーザーにより正確に報告し、エラー発生時の解決策を提示し、削除処理に数分かかる可能性があるためその進行状況を表示するなどすることが推奨されます。

bool QDir::rename(const QString &oldName, const QString &newName)

ファイルまたはディレクトリを `oldName ` から `newName` に名前変更し、成功した場合は `true` を返し、失敗した場合は `false` を返します。

ほとんどのファイルシステムでは、oldName が存在しない場合、または新しい名前を持つファイルがすでに存在する場合にのみ、rename() は失敗します。ただし、rename() が失敗する理由は他にもあります。たとえば、少なくとも 1 つのファイルシステムでは、newName が開いているファイルを指している場合、rename() は失敗します。

oldName が(ディレクトリではなく)すぐに名前変更できないファイルである場合、Qt はoldName をnewName にコピーし、oldName を削除しようとします。

QFile::rename()も参照してください 。

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

dirName で指定されたディレクトリを削除します。

rmdir() が成功するには、ディレクトリが空である必要があります。

成功した場合はtrue を返し、そうでない場合はfalse を返します。

mkdir()も参照してください 。

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

ディレクトリパス「dirPath 」を削除します。

この関数は、dirPath 内のすべての親ディレクトリが空である場合に限り、それらを削除します。これは mkpath(dirPath) の逆の動作です。

成功した場合はtrue を返し、失敗した場合はfalse を返します。

mkpath()も参照してください 。

[static] QDir QDir::root()

ルートディレクトリを返します。

ディレクトリはルートディレクトリの絶対パスを使用して構築され、そのpath()がabsolutePath()と同じになるように保証されています。

詳細については、rootPath()を参照してください。

drives()、current()、home()、およびtemp()も参照してください 。

[static] QString QDir::rootPath()

ルートディレクトリの絶対パスを返します。

Unix オペレーティングシステムでは「/」を返します。Windows ファイルシステムでは、通常「c:/」を返します。

root()、drives()、currentPath()、homePath()、およびtempPath()も参照してください 。

[static] QStringList QDir::searchPaths(const QString &prefix)

prefix の検索パスを返します。

setSearchPaths() およびaddSearchPath()も参照してください 。

[static] QChar QDir::separator()

ネイティブなディレクトリ区切り文字を返します。Unix では「/」、Windows では「\」です。

ファイルパスを構築する際に、この関数を使用する必要はありません。常に「/」を使用すれば、Qt がパスを変換して、基盤となるオペレーティングシステムに適合させます。ユーザーに対して、そのオペレーティングシステムの区切り文字を使用したパスを表示したい場合は、toNativeSeparators() を使用してください。

listSeparator()も参照してください 。

[static] bool QDir::setCurrent(const QString &path)

アプリケーションの現在の作業ディレクトリを `path` に設定します。ディレクトリの変更に成功した場合は `true ` を返し、失敗した場合は `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"

関連項目: current()、currentPath()、home()、root()、およびtemp()。

void QDir::setFilter(QDir::Filters filters)

entryList() およびentryInfoList() で使用されるフィルタをfilters に設定します。このフィルタは、entryList() およびentryInfoList() が返すファイルの種類を指定するために使用されます。QDir::Filter を参照してください。

filter() およびsetNameFilters()も参照してください 。

void QDir::setNameFilters(const QStringList &nameFilters)

entryList() およびentryInfoList() で使用される名前フィルターを、nameFilters で指定されたフィルターのリストに設定します。

各名前フィルターは、* および? のワイルドカードを認識するワイルドカード(グロビング)フィルターです。QRegularExpression::fromWildcard() を参照してください。

たとえば、次のコードはQDir に 3 つの名前フィルタを設定し、C++ ソースファイルで一般的に使用される拡張子を持つファイルのみが一覧表示されるようにしています:

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

nameFilters() およびsetFilter()も参照してください 。

void QDir::setPath(const QString &path)

ディレクトリのパスを `path` に設定します。パスから余分な「.」、「..」、および重複する区切り文字が削除されます。このパスに対応するディレクトリが実際に存在するかどうかは確認されませんが、exists() を使用してご自身で確認することができます。

パスは絶対パスまたは相対パスのいずれでも構いません。絶対パスは、ディレクトリ区切り文字「/」で始まります(Windows では、その前にドライブ指定がオプションで付く場合があります)。 相対ファイル名は、ディレクトリ名またはファイル名で始まり、現在のディレクトリを基準とした相対パスを指定します。絶対パスの例としては「/tmp/quartz」という文字列が挙げられ、相対パスは「src/fatlib」のような形式になります。

関連項目: path()、absolutePath()、exists()、cleanPath()、dirName()、absoluteFilePath()、isRelative()、およびmakeAbsolute()。

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

これはオーバーロードされた関数です。

この関数は Qt 6.0 で導入されました。

[static] void QDir::setSearchPaths(const QString &prefix, const QStringList &searchPaths)

ファイル名の検索パスに「prefix 」というプレフィックスが付く場合、Qtの検索パスを「searchPaths 」に設定または置き換えます。

ファイル名のプレフィックスを指定するには、プレフィックスの後にコロン1つを付けます(例: "images:undo.png"、"xmldocs:books.xml")。prefix には、文字または数字のみを含めることができます(例: コロンやスラッシュは含めることはできません)。

Qt は、この検索パスを使用して、既知のプレフィックスを持つファイルを検索します。検索パスのエントリは、最初のエントリから順にチェックされます。

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

Windows のドライブ文字との競合を避けるため、ファイル名のプレフィックスは 2 文字以上である必要があります。

検索パスには、Qt リソースシステムへのパスを含めることができます。

searchPaths()も参照してください 。

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

entryList() およびentryInfoList() で使用されるソート順を設定します。

sort は、列挙型QDir::SortFlag の値を論理和(OR)演算で組み合わせることで指定されます。

sorting() およびSortFlagも参照してください 。

QDir::SortFlags QDir::sorting() const

setSorting() で設定された値を返します

setSorting() およびSortFlagも参照してください 。

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

このQDir インスタンスをother に置き換えます。この操作は非常に高速で、失敗することはありません。

[static] QDir QDir::temp()

システムの一時ディレクトリを返します。

このディレクトリは、一時ディレクトリの絶対正規パスを使用して構築されるため、path() の結果がabsolutePath() の結果と一致することが保証されます。

詳細については、tempPath() を参照してください。

drives()、current()、home()、およびroot()も参照してください 。

[static] QString QDir::tempPath()

システムの一時ディレクトリの絶対正規パスを返します。

Unix/Linux システムでは、これは環境変数 `TMPDIR ` に設定されたパス、あるいは `TMPDIR ` が定義されていない場合は `/tmp ` に設定されたパスとなります。Windows では、通常、環境変数 `TEMP ` または `TMP ` に設定されたパスとなります。このメソッドによって返されるパスは、(ドライブの)ルートディレクトリでない限り、ディレクトリ区切り文字で終わることはありません。

temp()、currentPath()、homePath()、およびrootPath()も参照してください 。

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

'/' 区切り文字を、基盤となるオペレーティングシステムに適した区切り文字に変換した `pathName ` を返します。

Windows では、toNativeSeparators("c:/winnt/system32") は "c:\winnt\system32 " を返します。

Unix など一部のオペレーティングシステムでは、返される文字列が引数と同じになる場合があります。

fromNativeSeparators() およびseparator()も参照してください 。

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

other をこのQDir インスタンスに割り当てます。

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

dir オブジェクトのコピーを作成し、それをこのQDir オブジェクトに代入します。

QString QDir::operator[](qsizetype pos) const

ファイル名のリスト内の位置pos にあるファイル名を返します。entryList().at(index) と同等です。pos は、リスト内の有効なインデックス位置でなければなりません(つまり、0 <= pos <count())。

注: Qt 6.5 以前のバージョンでは 、pos はint であり、qsizetype ではありませんでした。

count() およびentryList()も参照してください 。

関連する非メンバー

[noexcept] bool operator!=(const QDir &lhs, const QDir &rhs)

ディレクトリ `lhs ` とディレクトリ `rhs ` のパス、またはソート設定やフィルタ設定が異なる場合は `true ` を返します。それ以外の場合は `false` を返します。

例:

// 現在のディレクトリは "/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)

ディレクトリ `lhs ` とディレクトリ `rhs ` のパスが同じで、かつソートおよびフィルタの設定も同一である場合、true を返します。それ以外の場合は、false を返します。

例:

// 現在のディレクトリは "/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.