QTemporaryDir Class

QTemporaryDir クラスは、一時的に使用するユニークなディレクトリを作成します。詳細...

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

注意:このクラスの関数はすべてリエントラントです。

パブリック関数

QTemporaryDir()
QTemporaryDir(const QString &templatePath)
(since 6.4) QTemporaryDir(QTemporaryDir &&other)
~QTemporaryDir()
bool autoRemove() const
QString errorString() const
QString filePath(const QString &fileName) const
bool isValid() const
QString path() const
bool remove()
void setAutoRemove(bool b)
(since 6.4) void swap(QTemporaryDir &other)
(since 6.4) QTemporaryDir &operator=(QTemporaryDir &&other)

詳細説明

QTemporaryDir は、一意の一時ディレクトリを安全に作成するために使用されます。ディレクトリ自体はコンストラクタによって作成されます。一時ディレクトリの名前は一意であることが保証され(つまり、既存のディレクトリを上書きしないことが保証され)、その後、QTemporaryDir オブジェクトの破棄時にディレクトリは削除されます。ディレクトリ名は自動生成されるか、または QTemporaryDir のコンストラクタに渡されるテンプレートに基づいて作成されます。

    // Within a function/method...

    QTemporaryDir dir;
    if (dir.isValid()) {
        // dir.path() returns the unique directory path
    }

    // The QTemporaryDir destructor removes the temporary directory
    // as it goes out of scope.

isValid() を使用して、一時ディレクトリが作成されることをテストすることは非常に重要です。デフォルトで構築されるQDir は、存在するカレント・ディレクトリを表すため、exists() は使用しないでください。

テンポラリ・ディレクトリへのパスは、path() を呼び出すことで確認できる。

一時ディレクトリには、名前の静的な部分と、一意になるように計算された部分 があります。デフォルトのパスはQCoreApplication::applicationName() から決定され (そうでない場合はqt_temp)、QDir::tempPath() が返す一時パスに配置される。独自のパスを指定した場合、相対パスはデフォルトではテンポラリ・ディレクト リに置かれず、現在の作業ディレクトリからの相対パスとなる。すべての場合において、パスを一意にするためにランダムな文字列が追加される。

QDir::tempPath()、QDir 、およびQTemporaryFileも参照のこと

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

QTemporaryDir::QTemporaryDir()

QCoreApplication::applicationName() によって返されたアプリケーション名をテンプレートとして QTemporaryDir を構築します (それ以外の場合はqt_temp)。このディレクトリは、システムの一時ディレクトリQDir::tempPath() に格納されます。

QDir::tempPath()も参照してください

[explicit] QTemporaryDir::QTemporaryDir(const QString &templatePath)

templatePath のテンプレートを持つ QTemporaryDir を構築します。

templatePath が相対パスの場合、パスは現在の作業ディレクトリからの相対パスになります。システムの一時ディレクトリを使用したい場合は、QDir::tempPath() を使用してtemplatePath を構築できます。

templatePath の末尾が XXXXXX の場合、それがディレクトリ名の動的部分として使用され、そうでない場合 は追加される。QTemporaryFile とは異なり、テンプレート文字列の途中のXXXXXXはサポートされない。

QDir::tempPath()も参照のこと

[noexcept, since 6.4] QTemporaryDir::QTemporaryDir(QTemporaryDir &&other)

Move は、other から新しい QTemporaryDir を構築します。

注意: 移動元のオブジェクトother は、部分的に形成された状態に置かれます。この状態では、有効な操作は破壊と新しい値の割り当てのみです。

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

[noexcept] QTemporaryDir::~QTemporaryDir()

一時ディレクトリオブジェクトを破棄する。自動削除モードが設定されている場合、ディレクトリを自動的に削除します。

autoRemove()も参照してください

bool QTemporaryDir::autoRemove() const

QTemporaryDir が自動削除モードの場合、true を返す。自動削除モードでは、ディレクトリが破壊されると自動的にディスクから削除されます。これにより、スタック上にQTemporaryDir オブジェクトを作成し、その中にファイルを詰め、ファイルに対して何かを行い、最後に関数が戻ったときに自動的に後始末を行うことが非常に簡単になります。

自動削除はデフォルトでオンになっている。

setAutoRemove() およびremove()も参照の こと。

QString QTemporaryDir::errorString() const

isValid() がfalse を返す場合、この関数は、テンポラリ・ディレクトリの作成に失敗し た理由を説明するエラー文字列を返す。そうでない場合、この関数は空の文字列を返す。

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

一時ディレクトリにあるファイルのパス名を返します。ファイルが実際にディレクトリに存在するかどうかはチェックしないfileName 内の冗長な複数セパレータや "." および ".." ディレクトリは削除されません (QDir::cleanPath() を参照)。絶対パスは許可されません。

返されるパスは、QTemporaryDir が相対パスで構築されたか絶対パスで構築されたかに応じて、それぞれ相対パスまたは絶対パスになります。

bool QTemporaryDir::isValid() const

QTemporaryDir が正常に作成された場合はtrue を返す。

QString QTemporaryDir::path() const

一時ディレクトリへのパスを返す。QTemporaryDir を作成できなかった場合は空。

返されるパスは、QTemporaryDir が相対パスで構築されたか絶対パスで構築されたかに応じて、それぞれ相対パスまたは絶対パスになります。

bool QTemporaryDir::remove()

テンポラリ・ディレクトリをすべての内容を含めて削除する。

削除に成功した場合はtrue を返します。

void QTemporaryDir::setAutoRemove(bool b)

b が true の場合、QTemporaryDir を自動削除モードに設定する。

デフォルトでは自動削除はオンである。

autoRemove() およびremove()も参照のこと

[noexcept, since 6.4] void QTemporaryDir::swap(QTemporaryDir &other)

この一時ディレクトリをother と入れ替える。この操作は非常に高速で、失敗することはありません。

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

[noexcept, since 6.4] QTemporaryDir &QTemporaryDir::operator=(QTemporaryDir &&other)

Move-assignother をこのQTemporaryDir インスタンスに割り当てる。

注意: 移動元のオブジェクトother は、部分的に形成された状態に置かれます。この状態では、有効な操作は破壊と新しい値の割り当てのみです。

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

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