QTemporaryDir Class

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

Header: #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-constructs は、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 で導入されました。

この関数は Qt 6.4 で導入されました©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。