gpt4 book ai didi

c++ - QDir::rename:冗余参数?

转载 作者:太空狗 更新时间:2023-10-29 20:02:34 24 4
gpt4 key购买 nike

我正在使用 QT 5.7,来自 doc :

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

为什么要指定目录的旧名称?不是现在的名字吗?我在考虑这个重载函数:

bool QDir::rename(const QString &newName){
return this->rename(this->dirName(), newName);
}

API 是否引用了当前目录的子目录?

最佳答案

QDir::rename 不会重命名目录本身,它会重命名目录中的元素。第一个参数选择要重命名的元素。

要重命名由绝对路径给出的目录条目,请使用静态QFile::rename(const QString &oldName, const QString &newName)

要重命名目录本身,您需要这样的东西:

bool renameDir(QDir & dir, const QString & newName) {
auto src = QDir::cleanPath(dir.filePath("."));
auto dst = QDir::cleanPath(
dir.filePath(QStringLiteral("..%1%2").arg(QDir::separator()).arg(newName)));
auto rc = QFile::rename(src, dst);
if (rc) dir.setPath(dst);
return rc;
}

关于c++ - QDir::rename:冗余参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39229177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com