QTemporaryDir 类

QTemporaryDir 类可创建用于临时用途的唯一目录。 更多...

头文件 #include <QTemporaryDir>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmakeQT += core

注意:本类中所有函数都是可重入的.

公共函数

QTemporaryDir()
QTemporaryDir(const QString &templatePath)
(since 6.4) QTemporaryDir(QTemporaryDir &&other)
~QTemporaryDir()
boolautoRemove() const
QStringerrorString() const
QStringfilePath(const QString &fileName) const
boolisValid() const
QStringpath() const
boolremove()
voidsetAutoRemove(bool b)
(since 6.4) voidswap(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() 测试临时目录是否可以创建,请勿使用exists(),因为默认构造的QDir 代表当前目录,它是存在的。

可以通过调用path() 找到临时目录的路径。

临时目录的名称将包含一些静态部分和一些计算为唯一的部分。默认路径将从QCoreApplication::applicationName() (否则 qt_temp) 中确定,并将其放置到QDir::tempPath() 返回的临时路径中。如果您指定自己的路径,则默认情况下不会将相对路径放置在临时目录中,而是相对于当前工作目录。在任何情况下,都会在路径中附加一个随机字符串以使其唯一。

另请参阅 QDir::tempPath()、QDirQTemporaryFile

成员函数文档

QTemporaryDir::QTemporaryDir()

使用由QCoreApplication::applicationName() 返回的应用程序名称(否则为 qt_temp)作为模板来构造一个 QTemporaryDir。该目录存储在系统临时目录中,QDir::tempPathLOWER()。

另见 QDir::tempPathLOWER()。

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

使用 templatePath 构造模板来构建一个 QTemporaryDir。

如果 templatePath 是一个相对路径,该路径将相对于当前工作目录。如果你想要使用系统的临时目录,可以使用 QDir::tempPathLOWER() 来构造 templatePath

如果 templatePath 以 XXXXXX 结尾,它将用作目录名称的动态部分,否则它将被追加。与 QTemporaryFile 不同,模板字符串中间的 XXXXXX 不受支持。

另见 QDir::tempPathLOWER()。

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

other 中移动构造一个新的 QTemporaryDir。

注意:移动的源对象 other 处于一个部分构建状态,此时唯一有效的操作是销毁或为新值赋值。

此功能自 Qt 6.4 以来已引入。

[noexcept] QTemporaryDir::~QTemporaryDir()

销毁临时目录对象。如果设置了自动删除模式,它将自动删除目录及其全部内容。

另见 autoRemoveLOWER()。

bool QTemporaryDir::autoRemove() const

如果 QTemporaryDir 处于自动删除模式,则返回 true。自动删除模式将在销毁时自动从磁盘删除目录。这使得在栈上创建你的 QTemporaryDir 对象,填充文件,使用文件,最后在函数返回时自动清理本身变得非常容易。

默认启用自动删除。

另见 setAutoRemoveLOWER() 和 removeLOWER()。

QString QTemporaryDir::errorString() const

如果 isValidLOWER() 返回 false,此函数返回解释为什么无法创建临时目录的错误字符串。否则,此函数返回空字符串。

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

返回临时目录中文件的路径名称。不考虑该文件是否实际存在于目录中。在 fileName 中不删除冗余的多重分隔符或 "." 和 ".." 目录(见 QDir::cleanPathLOWER())。不允许使用绝对路径。

bool QTemporaryDir::isValid() const

如果 QTemporaryDir 已成功创建,则返回 true

QString QTemporaryDir::path() const

返回临时目录的路径。如果无法创建QTemporaryDir,则为空。

bool QTemporaryDir::remove()

删除临时目录及其所有内容。

如果删除成功,则返回 true

void QTemporaryDir::setAutoRemove(bool b)

如果b为真,则将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)

other移动分配到当前QTemporaryDir实例。

注意:移动的源对象 other 处于一个部分构建状态,此时唯一有效的操作是销毁或为新值赋值。

此功能自 Qt 6.4 以来已引入。

© 2024 Qt 公司有限。此处包含的文档贡献拥有各自所有者的版权。提供的文档是按照GNU自由文档许可证版本1.3的条款授予的,由自由软件基金会发布。Qt及其相应标识是芬兰的Qt公司和/或在其他国家和地区注册的商标。所有其他商标均为其各自所有者的财产。